我正在尝试在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
答案 0 :(得分:70)
您正在尝试执行/ home并且它不是可执行文件。进程构建器的constructor参数是要执行的命令。
您想要设置工作目录。你可以通过directory方法获得它。
这是一个完整的例子:
Process p = null;
ProcessBuilder pb = new ProcessBuilder("do_foo.sh");
pb.directory(new File("/home"));
p = pb.start();