getSystemJavaCompiler()在Eclipse RCP中返回null

getSystemJavaCompiler()在Eclipse RCP中返回null,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我正在编写一个eclipse插件和一个RCP应用程序。我有一个需要编译一些java代码的需求,我可以使用ToolProvider.getSystemJavaCompiler()方法和这篇文章来完成。但问题是我需要在构建路径中使用JDK,否则它将返回null。我可以在开发时这样做,但我不确定是否所有用户都会拥有它。那么,我如何引用JRE并使其适用于只安装了JRE的最终用户呢?您需要将tools.jar从jdk/lib添加到您的项目依赖项中将其作为插件的一部分是否合法?然后分发?也许不是。请参阅。那

我正在编写一个eclipse插件和一个RCP应用程序。我有一个需要编译一些java代码的需求,我可以使用ToolProvider.getSystemJavaCompiler()方法和这篇文章来完成。但问题是我需要在构建路径中使用JDK,否则它将返回null。我可以在开发时这样做,但我不确定是否所有用户都会拥有它。那么,我如何引用JRE并使其适用于只安装了JRE的最终用户呢?

您需要将tools.jar从jdk/lib添加到您的项目依赖项中

将其作为插件的一部分是否合法?然后分发?也许不是。请参阅。那么我们是否可以使用其他不符合jdk要求的JavaCompiler替代方案?理论上,ToolProvider使用java.util.ServiceLoader机制在类路径上查找提供程序。因此,如果我们有一个免费的JavaCompiler实现,我们可以添加它而不是工具。那么我可以用EclipseJava编译器来代替它吗?我不知道如何引用它为我的插件虽然?