You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义模块未找到时如何使用jlink工具?

咱们直接说核心问题和解决方案,你遇到的模块找不到问题主要是jlink的模块路径配置错误,还有几个细节需要调整:

1. 关键错误:jlink需要编译后的class文件,不是源代码目录

你当前的jlink命令用了--module-path src,但src里是.java源代码文件,jlink只能识别编译后的.class文件目录或者模块化JAR包。从你能正常运行的java命令能看出来,编译后的class文件在target/classes目录,所以必须把这个目录加入模块路径,而不是src。

2. 必须包含所有依赖的第三方库

你的模块依赖了com.microsoft.sqlserver.jdbc、sshj等第三方库,这些也需要加入jlink的--module-path,就像你运行java命令时-p参数里的那些路径一样。jlink需要这些依赖来构建完整的自定义JRE。

3. 模块名大小写要严格统一

注意到你的module-info.java里模块名是com.company.TestJlink(末尾小写j),但运行java命令时用的是com.company.TestJLink(大写J)。Java模块名是大小写敏感的,这里必须完全一致,建议统一成和包名、类名匹配的com.company.TestJLink(同时修改module-info.java里的模块名),避免后续出现其他问题。

修正后的jlink命令示例

把编译目录和所有依赖JAR都加入--module-path,命令如下(替换成你实际的完整路径):

jlink --module-path "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;C:\Users\Administrator.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" --add-modules com.company.TestJlink --output outputJRE

额外小提示

  • 如果用Maven/Gradle,可以用maven-jlink-plugin这类插件自动处理依赖和路径,不用手动写这么长的命令。
  • 第三方JAR如果是自动模块(没有module-info.class),jlink也能处理,但部分老旧库可能会有兼容性问题,遇到的话可以再针对性调整。

内容的提问来源于stack exchange,提问作者coloradoman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:22:09