gpt4 book ai didi

java 9 第三方模块适用于 IDE 但不适用于 jlink

转载 作者:搜寻专家 更新时间:2023-11-01 02:57:38 25 4
gpt4 key购买 nike

该程序基于 JDK 9(JPMS),在使用IDE(Intellij) 我“需要”它们并且程序运行良好。当我尝试使用 java9 'jlink' 获取自定义 JRE 时,我得到以下信息:

/out$ jlink --module-path production --add-modules  
studyModule,java.base,java.datatransfer,java.desktop,java.logging,
java.scripting,java.sql,java.xml,java.prefs,javafx.base,
javafx.controls,javafx.fxml,javafx.graphics,javafx.media,
javafx.swing,javafx.web,jdk.jsobject,jdk.xml.dom,jdk.unsupported
--output studyJre
Error: module-info.class not found for com.zaxxer.hikari module

/out$ jlink --module-path production --add-modules
studyModule,java.base,java.datatransfer,java.desktop,java.logging,
java.scripting,java.sql,java.xml,java.prefs,javafx.base,
javafx.controls,javafx.fxml,javafx.graphics,javafx.media,
javafx.swing,javafx.web,jdk.jsobject,jdk.xml.dom,jdk.unsupported
--output studyJre
Error: module-info.class not found for poi module

问题是:为什么那些带有 IDE 的软件包可以正常工作?如果它们没有被模块化,那么也不应该在 IDE 中工作。

P.S:我在使用 jlink 时将这些 jar 添加到“根”文件夹。

最佳答案

请记住,jlink 是一种非标准工具,它不必遵循与经典 Java 完全相同的规则。它的区别之一是它要求所有模块都是显式的(即具有 module-info.class)。 不支持自动模块。如果要制作自定义运行时镜像,则必须将所有自动模块转换为显式模块。参见,例如,this question知道如何实现它。

关于java 9 第三方模块适用于 IDE 但不适用于 jlink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com