Как выполнить скрипт по другому пути - PullRequest
1 голос
/ 14 сентября 2010

Я хочу выполнить myscript.sh из Java-проекта.
Вызов, который я хочу сделать, выглядит примерно так:

Process p = Runtime.getRuntime().exec("./myscript.sh "+param1+" "+param2);

Проблема в том, что этот script.sh отсутствует втот же путь, поэтому я попытался сделать:

Process p = Runtime.getRuntime().exec("src/main/resources/./myscript.sh "+param1+" "+param2);

Но скрипт больше не выполняется.Я предполагаю, что проблема в том, как я поставил путь, потому что я проверил, и сценарий отлично работает, если он находится на том же пути.

Есть идеи?

Заранее спасибо

1 Ответ

2 голосов
/ 14 сентября 2010

Вместо этого вы можете использовать ProcessBuilder документации для Runtime.exec вы даже можете прочитать следующее:

ProcessBuilder.start () теперь является предпочтительным способом запуска процесса с измененной средой.

Как показывает пример из документации, вы можете использовать pb.directory(File f) для установки рабочего каталога:

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
// ...
pb.directory("myDir");
Process p = pb.start();
...