我想使用JavaCompiler
动态创建一些类。
我找到了javax.tools
包的源代码,但没有实现;互联网上的一些帖子说它取决于tools.jar
,我不确定tools.jar
是否与JRE有关。
那么,我可以在没有安装JDK的JRE环境中运行程序吗?
另一个问题是JavaCompiler
的实现细节是什么,它是否创建了一个调用javac
命令的新进程?
感谢
答案 0 :(得分:8)
JRE需要在该包中包含接口和类,但不需要提供实现。
Sun的JRE没有,并且在调用ToolProvider.getSystemJavaCompiler()
时返回null。
This other question解决了java 5。
这是关于如何使用eclipse的编译器作为javax.tools.JavaCompiler的实现的blog post by Morten Nobel-Jørgensen。
JavaCompiler javac = new EclipseCompiler();