Image

Image_hgh_ wrote in Imageru_java

Запуск другой программы из Java-приложения

Вот фрагмент кода, запускающий стороннюю программу из Java-приложения, перехватывающий ее InputStream и выводящий оный в TextArea...
...
builder = new ProcessBuilder(model.getProjectDir() + File.separator + executable);
builder.directory(model.getProjectDir());
builder.redirectErrorStream(true);
process = builder.start();
BufferedReader reader = new BufferedReader (new InputStreamReader (process.getInputStream()));
processLog = new StreamingTextArea(reader);
logFrame = new JFrame (EXECUTABLE_LOG);
JScrollPane scroller = new JScrollPane(processLog, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
logFrame.setContentPane(scroller);
logFrame.pack();
logFrame.setVisible(true);
processLog.run();
...

интересует следующее - под Windows данный фрагмент выолняется как положено, а под Linux - нет. Т.е. по запуску открывается фрэйм с TextArea, но TextArea остается пустой, процесс не появляется в списке процессов, выполнение не происходит, Exception-ов тоже нет.

В чем причина?

Upd. Порешалось. Проблема оказалась в неправильных путях к выполнимым модулям. Всем спасибо