[英]Compile .java file from within a java program?
我發現此代碼:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
if(compiler.run(null, null, null, fileName) != 0) {
System.err.println("Could not compile.");
System.exit(0);
}
但是,這將返回NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at net.foxycorndog.foxy.compiler.Compiler.compile(Compiler.java:25)
at net.foxycorndog.foxy.compiler.Parser.parse(Parser.java:41)
at net.foxycorndog.foxy.Foxy$ActionHandler.actionPerformed(Foxy.java:99)
我讀到JRE不包含在Java程序中進行編譯的功能,但JDK包含。
我不希望僅在少數幾台必須手動設置JDK庫而不是JRE路徑的計算機上運行的程序。 考慮到這一點,是否可以解決此問題?
我也希望它可以跨平台工作。
JRE不包含編譯器,而JDK包含編譯器,這一事實尚無解決方法。 如果要使用Java編譯器,則需要使用JDK運行程序。
但是,還有其他方法可以在運行時創建可執行Java代碼。 有各種字節碼匯編器 ,可讓您無需編譯器即可動態地構建代碼。 ASM是一個艱難的過程。 Apache BCEL是另一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.