请帮助我了解如何获取常规java工具的输出并将其显示在Java Swing Application的textArea组件中? 常规的Java应用程序(不是gui)已经可以通过cmd获取文件并在控制台中输出。 现在,我的场景是当我在Java Gui中加载文件时,内部的所有数据都将被发送到这个java应用程序(jar文件不是gui)。 我喜欢这个,但进一步我是堆栈。哪里发送输入?以及如何获取输出流以便在Java Gui应用程序的textArea中显示它。 下面的代码在Java Gui应用程序中。
String cmd =MessageFormat.format("java -jar tooling-gott-extended.jar -defaultMID {0} -urls {1} -src {2} -exclude {3}",
comboBoxMid.getSelectedItem(),
comboBoxGate.getSelectedItem(),
selectedFileTC.toString(),
" ");
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader input = new BufferedReader(new
InputStreamReader(p.getInputStream()));
答案 0 :(得分:0)
我发现如何做到这一点,如果有人需要它,代码如何执行它。 但我现在面临其他挑战。我没有在gui应用程序的textArea中看到任何内容,直到它完成在cmd后面执行。如何显示并行?
String path = "C:\\Eclipse\\workspace_automation\\gui-tool\\java.jar";
String cmd = MessageFormat.format("java -jar {0} param1 {1} param2 {2} param3 {3}", path,
comboBoxMid.getSelectedItem(), comboBoxGate.getSelectedItem(), selectedFileTC.toString());
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", cmd);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
textArea.append("\n"+line);
}