我正在尝试使用反射动态编译和加载java类。如果我使用 JDK 作为标准 VM,我的代码可以正常工作,没有任何异常。但当我使用 JRE 作为标准 VM 时,相同的代码在 ToolProvider.getSystemJavaCompiler()
处抛出空指针异常。
我的类路径中没有 JDK。那么,我们是否可以选择使用 JRE 作为标准 VM 来编译 java 代码呢?有人可以帮我解决这个问题吗?提前致谢。
最佳答案
java-compiler API 仅在存在编译器时才起作用。当您使用 JDK 时,编译器存在,但当您使用 JRE 时(通常)不存在。
您是否打算使用一种与 JDK 中提供的不同的特殊编译器?看起来有一种方法可以将第三方编译器插入到 JRE 中。
http://docs.oracle.com/javase/7/docs/api/javax/tools/package-summary.html
关于java - 是否可以使用 JRE 作为标准 VM 来实例化 Java 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19082274/