7

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

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

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

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

谢谢

4

1 回答 1

10

JRE 需要在该包中包含接口和类,但不需要提供实现。

Sun 的 JRE 没有,并从调用返回 null ToolProvider.getSystemJavaCompiler()

这个另一个问题解决了java 5。

这是Morten Nobel-Jørgensen 的一篇博客文章,介绍了如何使用 eclipse 的编译器作为 javax.tools.JavaCompiler 的实现。

JavaCompiler javac = new EclipseCompiler();
于 2009-11-11T09:11:56.737 回答