如何用ProcessBuilder设置工作目录

我正在尝试在Ubuntu的主目录中启动一个进程。 我得到一个数组越界的exception。 这里是代码:

Process p = null; ProcessBuilder pb = new ProcessBuilder(); pb.directory(new File("/home")); p = pb.start(); 

这是一个例外:

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at java.lang.ProcessBuilder.start(ProcessBuilder.java:459) at tester.Main.main(Main.java:31) Java Result: 1 

你正试图执行/ home,它不是一个可执行文件。 进程生成器的构造函数参数是要执行的命令。

你想设置工作目录。 你可以通过目录方法。

这是一个完整的例子:

 Process p = null; ProcessBuilder pb = new ProcessBuilder("do_foo.sh"); pb.directory("/home"); p = pb.start();