Я хочу запустить некоторые скрипты Python из приложения javafx.Для запуска скриптов я использую этот код:
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
System.out.println(command);
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
public void launchCommand(String inputDir, String outputDir) {
String command = ".\\venv\\Scripts\\python.exe ./test.py -i " + inputDir + " -o " + outputDir;
String output = this.executeCommand(command);
System.out.println(output);
}
Проблема в том, что скрипт запускается графическим потоком javafx, поэтому строка
p.waitFor();
заблокирует поток javafx и поэтому мойGUI перестает отвечать ...
Я не знаю, как решить эту проблему ... Заранее спасибо за помощь!