我正在开发java应用程序,它允许白化或粘贴源代码并运行它而无需手动编译程序。它做的是将java代码从文本框保存到文本文件并执行cmd命令java java执行javac java-file.file后的-file。
它工作正常但是当java文件没有任何输出时遇到这个问题.i意味着如果代码创建一个swing形式..cmd没有任何输出。然后我的java程序卡住实际上我无法关闭it.i必须像taskmanager一样使用外部程序来关闭它。 但是当源代码具有命令行输出时,这个问题从未发生过。
OutputStream stdin = null;
BufferedReader br = null;
String line = null;
String command = null;
command = jTextField1.getText();
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);
stdin = p.getOutputStream(); //use this to push commands
//processing stdout
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
// br.flush();
byte[] bytes = new byte[4096];
///////////////////////////////////////////
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
while (in.read(bytes) != -1)
{
jTextArea1.append(br.readLine()+"\n");
}
///////////////////////////////////////////