问题描述
我有这样的目录结构:
测试链接
-src
--module-info.java
--com
---公司
----TestJLink
-----TestJLink.java
我运行这个 jlink --module-path src --add-modules com.company.TestJLink --output outputJRE
我收到错误:找不到模块 com.company.TestJlink
我的module-info.java的内容是这样的:
module com.company.TestJlink {
requires java.desktop;
requires com.microsoft.sqlserver.jdbc;
requires java.sql;
requires sshj;
}
我的 TestJLink.java 包含这个
package com.company.TestJLink;
imports ...
public class TestJLink {
TestJlink(){}
...
}
我使用的是 Java 11
我可以使用它来构建它: java -p C:\Users\Administrator...\target\classes;C:\Users\Administrator.m2\repository\com\microsoft\sqlserver\mssql-jdbc\8.4.1.jre11\mssql-jdbc-8.4. 1.jre11.jar;C:\Users\Administrator.m2\repository\com\hierynomus\sshj\0.27.0\sshj-0.27.0.jar;C:\Users\Administrator.m2\repository\org\bouncycastle\ bcprov-jdk15on\1.60\bcprov-jdk15on-1.60.jar;C:\Users\Administrator.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.60\bcpkix-jdk15on-1.60.jar\Administrator\Administrator;C: m2\repository\com\jcraft\jzlib\1.1.3\jzlib-1.1.3.jar;C:\Users\Administrator.m2\repository\net\i2p\crypto\eddsa\0.2.0\eddsa-0.2.0 .jar;C:\Users\Administrator.m2\repository\org\slf4j\slf4j-api\1.7.5\slf4j-api-1.7.5.jar;C:\Users\Administrator.m2\repository\org\slf4j \slf4j-log4j12\1.7.5\slf4j-log4j12-1.7.5.jar;C:\Users\Administrator.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar -m com.company .TestJLink/com.company.TestJLink.TestJLink
解决方法
首先执行 javac 解决了这个问题,我也遇到了问题。 我找到的解决方案只是将其添加到 javac src\module-info.java src\com\company\TestJLink\TestJLink.java
的末尾编译完成后,我就可以jlink了。我之前使用 jlink 遇到的问题是我引用的是 src,而不是编译的 .class 文件。
jlink --module-path --output testjre --add-modules com.company.TestJLink -p ...来自 maven jars 等的任何其他依赖项
现在我收到这个错误,错误:自动模块不能与 jlink 一起使用。这应该很有趣,但它与我的 Maven 依赖关系有关,而不是实际示例。