簡體   English   中英

從Java程序中編譯.java文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM