java 9第三方模块可与IDE一起使用,但不能与jlink一起使用

java 9第三方模块可与IDE一起使用,但不能与jlink一起使用,java,apache-poi,java-9,hikaricp,jlink,Java,Apache Poi,Java 9,Hikaricp,Jlink,该程序基于JDK 9(JPMS),使用一些第三方jar,如Apache(poi-3.17.jar、commons-io-2.6.jar)和HikariCP(HikariCP-3.1.0.jar),当使用IDE(Intellij)I“需要”它们时,程序运行良好。 当我尝试使用java9“jlink”获取我的定制JRE时,我得到了以下结果: /out$ jlink --module-path production --add-modules studyModule,java.base,java.

该程序基于JDK 9(JPMS),使用一些第三方jar,如Apache(poi-3.17.jar、commons-io-2.6.jar)和HikariCP(HikariCP-3.1.0.jar),当使用IDE(Intellij)I“需要”它们时,程序运行良好。 当我尝试使用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中工作


注意:在使用jlink时,我将这些JAR添加到了“root”文件夹。

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

@ZhekaKozlov…我用jlink为您指出了要点。将尝试链接中提到的方法…似乎JDEP将完成任务。无论如何,谢谢你的帮助……我尝试了你链接中提到的方法,使用了Philip的JDEP;在HikariCP-3.1.0.jar和poi-3.17.jar上,我得到了(缺少依赖项:./poi/module-info.java未生成)许多依赖项名称……为什么在我的情况下这种方式不起作用?