如何使用ProcessBuilder设置工作目录

Eri*_*ric 31 java unix ubuntu process processbuilder

我正在尝试在ubuntu的主目录中启动一个进程.我得到一个超出界限的数组异常.这是代码:

Process p = null;
ProcessBuilder pb = new ProcessBuilder();
pb.directory(new File("/home"));
p = pb.start();
Run Code Online (Sandbox Code Playgroud)

这是一个例外:

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
Run Code Online (Sandbox Code Playgroud)

dme*_*ter 70

您正在尝试执行/ home并且它不是可执行文件.进程构建器的构造函数参数是要执行的命令.

您想要设置工作目录.你可以通过目录方法.

这是一个完整的例子:

Process p = null;
ProcessBuilder pb = new ProcessBuilder("do_foo.sh");
pb.directory(new File("/home"));
p = pb.start();
Run Code Online (Sandbox Code Playgroud)