【问题标题】:Java compiler null when creating jar with all dependencies创建具有所有依赖项的 jar 时 Java 编译器为空
【发布时间】:2014-06-03 12:11:08
【问题描述】:

我正在尝试创建一个包含所有依赖项的 jar,该 jar 将托管一个小型 Groovy 程序,该程序使用 Java 编译器 API 在运行时生成一个类。我正在使用 Gradle One Jar 来生成这个,但是我也尝试了 Maven 程序集插件并获得了相同的结果。这是失败的代码:

def compiler = ToolProvider.getSystemJavaCompiler()
assert compiler != null

在我的 jar 文件上运行 java -jar 时的结果:

Exception in thread "main" Assertion failed:

assert compiler != null
       |        |
       null     false

我猜这可能是一个明显的问题,不包括包含编译器的适当 JDK jar。关于如何解决这个问题的任何建议?我不需要 Gradle 或 Maven 特定的建议,我认为这会有所帮助。

【问题讨论】:

  • 您是否尝试过使用JDKjava 命令执行您的应用程序?

标签: java maven groovy gradle


【解决方案1】:

我认为 Peter 试图暗示的是,您很可能使用 JRE 运行您的 java 命令,该 JRE 不包括用于编译器的 tools.jar。您需要 tools.jar 或。更好的是,一个已安装的 JDK。

如果您想知道如何将类或 jars 添加到清单文件的类路径部分,您可以阅读 http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2018-06-30
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2019-05-24
    • 2021-06-04
    • 1970-01-01
    • 2020-08-19
    相关资源
    最近更新 更多