我目前正在製作一個工具,根據用戶輸入輸出Java類文件以供使用。我輸出了一組.java文件,其中一些引用了當前上下文中不存在的類和變量。因此,當我編譯時,輸出文件會記錄這些錯誤,並且不會編譯該類。我的問題是:有沒有辦法使用JavaCompiler來編譯類文件?JavaCompiler API強制編譯有錯誤?
這裏的彙編代碼:
public static void compileAll(File file) throws IOException{
String fileToCompile = "C:/test.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
FileOutputStream errorStream = new FileOutputStream("Errors.txt");
int compilationResult = compiler.run(null, null, errorStream, "-verbose", fileToCompile);
if(compilationResult == 0){
System.out.println("Compilation is successful");
}else{
System.out.println("Compilation Failed");
}
}
更好的是,將它們定義爲接口,然後添加實現它們的虛擬方法。這種方式取代他們可能會更快。 – SJuan76
所以你說沒有辦法做到這一點?因爲重新制作所有必要的課程將是一件麻煩事。 –