Подтвердить что ты не робот

Как установить рабочий каталог с 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
4b9b3361

Ответ 1

Вы пытаетесь выполнить /home и это не исполняемый файл. Аргумент конструктор конструктора процесса - это команда для выполнения.

Вы хотите установить рабочий каталог. Это можно сделать с помощью метода directory.

Вот полный пример:

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