我用的是下面这个办法:Runtime runtime = Runtime.getRuntime(); runtime.exec("javac E:\\working\\test\\MyCommand.java", null, new File("E:\\working\\test"));但问题是:无论编译成功还是失败,在控制台中都没有输出。 (我的愚见:在编译失败时应该出现异常)另外:java.lang.Compiler是否可以解决这个问题?试了一下,不会用。
一定要在程序中编译一个java文件吗?需求是什么?也许可以换个思路
"在程序中编译一个java文件"就是需求啊!
String result = "" Runtime runtime = Runtime.getRuntime(); Process p = runtime.exec("javac E:\\working\\test\\MyCommand.java", null, new File("E:\\working\\test"));DataInputStream dis = new DataInputStream(p.getInputStream()); byte buf[] = new byte[512]; int readed = 0; while ((readed = dis.read(buf)) > -1) { result += new String(buf, 0, readed, "GBK"); }result中为输出,检查一下就可以了
runtime.exec("javac E:\\working\\test\\MyCommand.java", null,
new File("E:\\working\\test"));但问题是:无论编译成功还是失败,在控制台中都没有输出。
(我的愚见:在编译失败时应该出现异常)另外:java.lang.Compiler是否可以解决这个问题?试了一下,不会用。
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("javac E:\\working\\test\\MyCommand.java", null,
new File("E:\\working\\test"));DataInputStream dis = new DataInputStream(p.getInputStream());
byte buf[] = new byte[512];
int readed = 0;
while ((readed = dis.read(buf)) > -1)
{
result += new String(buf, 0, readed, "GBK");
}result中为输出,检查一下就可以了