Как установить рабочий каталог с 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
Вы пытаетесь выполнить /home и это не исполняемый файл. Аргумент конструктор конструктора процесса - это команда для выполнения.
Вы хотите установить рабочий каталог. Это можно сделать с помощью метода directory.
Вот полный пример:
Process p = null;
ProcessBuilder pb = new ProcessBuilder("do_foo.sh");
pb.directory("/home");
p = pb.start();