我怎么能redirect输出从javac回到调用程序

// this works if ("Show".equals (obj)) { try { String command= "/usr/bin/xterm -e javac panel_1.java"; Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(command); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } 

这将打开一个xterm窗口,在panel_1.java上调用javac,如果panel_1.java是一个有效的文件,它将被编译。 那么xterm窗口closures。 好吧,我想从编译中拿出警告等,并把它们放在一个列表或一个文本区域。 有任何想法吗???

Java 6拥有javax.tools包中的JavaCompiler ,它为编译器提供了一个API,而无需运行一个外部进程。 (阅读我链接的javadoc!)

这里也是关于这个问题的一个小教程。