jjzjj

Java 9 : Generating a runtime image with JLink using 3rd party jars

coder 2024-03-16 原文

我想创建一个包含第 3 方 jar 的 Java 9 运行时镜像。我制作了一个简单的 Java 项目(我们称之为 Example)来调用实用程序 jar(我们称之为 ExampleUtil.jar)。 Example 包含 src 目录中的 module-info.java 并在 Eclipse 中运行良好(我添加了 ExampleUtil.jar 作为模块依赖)。如果我打电话:

jlink -v
    --module-path "C:\Program Files\Java\jdk-9.0.4\jmods";C:\Temp
    --add-modules com.example.steven
    --output C:\Temp\image.steven
    --launcher launch=com.example.steven/com.example.steven`

...我收到错误消息:

Error: module-info.class not found for ExampleUtil module

有没有办法使用不是模块的 jar 来创建运行时镜像?谢谢。

最佳答案

不,jlink 要求所有包含的模块都是显式,这意味着它们需要有一个模块描述符。这是the documentation说到jlink的模块路径:

The path where the jlink tool discovers observable modules. These modules can be modular JAR files, JMOD files, or exploded modules.

请注意没有“普通 JAR”(即没有描述符的 JAR)。

不过,您可以将现有的第三方 JAR 升级为模块化 JAR(需要一些努力)。步骤是:

或者,您可以使用类似 ModiTect 的工具它会为您做这些事情。

关于Java 9 : Generating a runtime image with JLink using 3rd party jars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48408454/

有关Java 9 : Generating a runtime image with JLink using 3rd party jars的更多相关文章

随机推荐