我有一个Java脚本,它启动一个新线程,使用processbuilder执行python脚本。下面的代码当前从python获取输出,并在Java运行输出中和JTextArea中显示它。但是,它只在py脚本运行完毕后进行批量操作。是否有方法在从py脚本中写入输出时实时显示输出?谢谢!!!!
public void launchPythonScript() {
try {
ProcessBuilder py = new ProcessBuilder("cmd", "/C", "PythonScriptLocation (C:\\....)",""+Directory(variable needed for py script));
Process launch = py.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(launch.getInputStream()));
String readLine;
StringBuilder JavaOutput = new StringBuilder();
while((readLine = reader.readLine()) != null){
JavaOutput.append(readLine).append(System.lineSeparator());
frame2.consoleOutput.setText(JavaOutput.toString());
System.out.println(readLine);
}
} catch (IOException ex) { Logger.getLogger(Frame1.class.getName()).log(Level.SEVERE, null, ex);}
}
进程InputStream应该在脚本运行时提供数据。在
您一次只读取一行,因此如果python脚本在一行中发送所有数据,那么您只能在最后看到输出。在
尝试将输出数据分成多行。在
相关问题 更多 >
编程相关推荐