javax.tools是否依赖于JDK?

时间:2009-11-11 09:06:03

标签: java java-compiler-api jsr199

我想使用JavaCompiler动态创建一些类。

我找到了javax.tools包的源代码,但没有实现;互联网上的一些帖子说它取决于tools.jar,我不确定tools.jar是否与JRE有关。

那么,我可以在没有安装JDK的JRE环境中运行程序吗?

另一个问题是JavaCompiler的实现细节是什么,它是否创建了一个调用javac命令的新进程?

感谢

1 个答案:

答案 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();