如何使用ProcessBuilder设置工作目录

时间:2011-12-06 19:37:42

标签: java unix ubuntu process processbuilder

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

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

1 个答案:

答案 0 :(得分:70)

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

您想要设置工作目录。你可以通过directory方法获得它。

这是一个完整的例子:

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