是否可以使用JRE作为标准VM实例化Java编译器?

时间:2013-09-29 19:25:38

标签: java java-compiler-api

我正在尝试使用反射动态编译和加载java类。如果我使用JDK作为标准VM,我的代码可以正常工作,没有任何例外。但是当我使用JRE作为标准VM时,同样的代码在ToolProvider.getSystemJavaCompiler()抛出Null Pointer Exception。

我的类路径中不能有JDK。那么,我们有没有选择使用JRE作为标准VM来编译java代码?有人可以帮我这个吗?在此先感谢。

1 个答案:

答案 0 :(得分:0)

只有存在编译器时,java-compiler API才有效。使用JDK时会出现编译器,但在使用JRE时不会(通常)存在。

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

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