【发布时间】:2011-10-29 23:21:06
【问题描述】:
我的工具带有 Java 用户界面。如果我单击一个按钮,我想启动一个应用程序。 exe 在我的工具中,我有一个控制台,我想在其中带来 .exe 的输出(控制台)。为此,我已经这样做了:
Runtime run = Runtime.getRuntime();
StyledDocument doc = txtResult.getStyledDocument();
SimpleAttributeSet keyWord = new SimpleAttributeSet();
StyleConstants.setForeground(keyWord, Color.RED);
try {
Process pp=run.exec(PATHEXE);
BufferedReader in =new BufferedReader(new InputStreamReader(pp.getInputStream()));
BufferedReader inErr =new BufferedReader(new InputStreamReader(pp.getErrorStream()));
String line = null;
String lineErr = null;
while (((line = in.readLine()) != null) ||(lineErr = inErr.readLine()) != null) {
if(line != null)
doc.insertString(doc.getLength(), line+"\n", null );
if(lineErr != null)
doc.insertString(doc.getLength(), lineErr+"\n", keyWord );
}
int exitVal = pp.waitFor();
System.out.println("Process exitValue: " + exitVal);
btRun.setEnabled(true);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
一切正常,但我仍然有一些问题:
- 我想移动执行。 exe在另一个线程上 在 .exe 执行期间释放用户界面。
- 在我的工具中读取输出 .exe 只是在结束时...然后运行更新我在运行时得到输出?
【问题讨论】:
标签: java multithreading user-interface netbeans exe