У меня есть сценарий оболочки bash, который выполняет кучу команд и перенаправляет вывод команды в файлы журнала, используя >
. Если я вызываю сценарий оболочки из Java, используя Runtime.getRuntime().exec("sh shellscript.sh");
, сценарий оболочки запускается, но файлы журнала не записываются! Зачем? И как мне заставить это работать?
EDIT:
Хорошо, так что я пытаюсь сделать немного по-другому. Ваш код работает нормально. Но теперь перенаправление внутри Java-программы не работает. В приведенном ниже примере программы файл журнала не записывается!
$ cat script.sh
#!/bin/sh
echo "Hello there"
echo "Hello there 2"
$ cat RunScript.java
public class RunScript {
public static void main(String[] argv) throws Exception {
int i = Runtime.getRuntime().exec("sh /home/gpx/script.sh >> log").waitFor();
System.out.println("Exit code : " + i);
}
}