try {
String str;
Process process = Runtime.getRuntime().exec("bash /home/abhishek/workspace/Pro/run");
InputStream isout = process.getInputStream();
InputStreamReader isoutr = new InputStreamReader(isout);
BufferedReader brout = new BufferedReader(isoutr);
while ((str = brout.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
}
имеет проблемы с получением InputStream от процесса кода, , потому что, если я запустить сценарий оболочки из моего терминала он работает совершенно нормально, , но если я запустить сценарий как это, ул всегда нуль,Java Процесс не может получить InputStream через Runtime.getRuntime(). Exec()
Я использую этот код, чтобы получить выход Shell Script непосредственно в Java вместо написания вывода сценария в файле
есть ли любым другим способом достичь этого или как я могу решить проблему с использованием текущего подхода
хороший вопрос, но довольно твердый. Это связано с блокировкой IO, которая всегда является болью.Однако есть библиотека под названием akka (http://akka.io/), которая претендует на преодоление таких проблем с блокировкой ввода-вывода. Я начал изучать его, и я должен был признать, что он тоже имеет свои ограничения ... – xhudik
Вы уверены, что скрипт печатает на stdout, а не на stderr? – Dunes
Есть ли что-нибудь возвращенное из process.getErrorStream()? – StarPinkER