1

我正在尝试使用反射动态编译和加载java类。如果我使用 JDK 作为标准 VM,我的代码可以正常工作,没有任何异常。ToolProvider.getSystemJavaCompiler()但是当我将 JRE 用作标准 VM 时,相同的代码会引发空指针异常。

我的类路径中不能有 JDK。那么,我们是否可以选择使用 JRE 作为标准 VM 来编译 java 代码?谁能帮我解决这个问题?提前致谢。

4

1 回答 1

0

java-compiler API 仅在存在编译器时才起作用。编译器在您使用 JDK 时存在,但在您使用 JRE 时(通常)不存在。

您是否打算使用一种特殊的编译器,一种与 JDK 中提供的不同的编译器?看起来有一种方法可以将第三方编译器插入 JRE。

http://docs.oracle.com/javase/7/docs/api/javax/tools/package-summary.html

于 2013-09-29T23:03:48.137 回答