我找到了这段代码:
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 路径的计算机上运行的程序。考虑到这一点,是否有解决此问题的方法?
如果可能的话,我也希望它能够跨平台工作。