Java jlink未找到module-info.class
我使用的是一个maven项目的布局Java jlink未找到module-info.class,java,maven-3,jlink,Java,Maven 3,Jlink,我使用的是一个maven项目的布局 src main java <some-package-name> module-info.java src 主要的 JAVA module-info.java 我使用的唯一插件是maven编译器插件,版本3.7.0 <build> <finalName>${project.artifactId}</finalName> <plugins>
src
main
java
<some-package-name>
module-info.java
src
主要的
JAVA
module-info.java
我使用的唯一插件是maven编译器插件,版本3.7.0
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
${project.artifactId}
org.apache.maven.plugins
maven编译器插件
3.7.0
9
9
当我运行命令jlink--modulepath$JAVA_HOME/jmods:target--addmodules foo--output jre
输出是错误:在target(foo.jar和class)中找到了两个版本的模块foo
但是,当我运行jlink--modulepath$JAVA_HOME/jmods:target/foo.jar--addmodules foo--output jre
时,它会显示错误:找不到module foo
因此jlink可以看到模块存在,但无法找到我的模块信息。maven是否缺少一些东西来将文件放在正确的位置?我不清楚maven是如何处理java模块的,因此我无法提供完整的答案。但是我在您的图表中没有看到模块文件夹“foo”,这会使查找foo的module-info.class变得困难。一个合适的模块需要一个名为模块名的文件夹和一个内容为“模块名{…}”的模块信息 类似于上述结构的东西应该是朝着正确方向迈出的一步 这假设您的module-info.class是“module foo{…}”
src
main
java
foo
module-info.class
the-compiled-java-classes-of-your-application