Запуск bash-скрипта из JVM - PullRequest
       18

Запуск bash-скрипта из JVM

0 голосов
/ 13 февраля 2010

У меня проблемы с запуском простого скрипта bash из Java. В частности:

...

try{
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
pb.directory(new File(dir));
Process shell = pb.start();
int exitVal = shell.waitFor();

... где 'command' - абсолютный путь к bash-скрипту, который исполняется всеми, а 'dir' - рабочий каталог.

Когда я запускаю свою программу, я получаю код выхода 127 («команда не найдена»). Я пытался использовать класс Java Runtime и метод process.exec, но ни один из них не помог мне. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2010

Если «команда» является сценарием bash, тогда вместо передачи «/ bin / bash» (и ошибочного «-c», как вы это делаете) в ProcessBuilder, просто убедитесь, что команда является исполняемой (chmod + x команда), что первая строка - #!/bin/bash, а затем передать полный путь к нему в ProcessBuilder.

0 голосов
/ 13 февраля 2010

Нет -c. Это означает, что скрипт является аргументом для -c. Вы передаете ему путь и не используете -c для этого.

...