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

使用Jlink创建运行时镜像时加载模块失败求助

Jlink无法加载自定义模块的排查方向

以下是你遇到的jlink加载模块失败的常见原因及检查点:

  • 模块路径下的目录结构错误
    jlink要求模块路径中的每个模块必须是模块化jar包,或者是包含module-info.class的目录(目录名需与模块名一致)。检查mymodapp\appmodules下的结构:

    • 应该存在appfuncs和appstart两个子目录,每个子目录下对应模块的编译文件(包括module-info.class和包结构下的class文件)
    • 示例正确结构:
      mymodapp\appmodules
      ├─ appfuncs
      │  ├─ module-info.class
      │  └─ appfuncs
      │     └─ [对应类的class文件]
      └─ appstart
         ├─ module-info.class
         └─ appstart
            └─ mymodappdemo
               └─ MyModAppDemo.class
      
  • 模块编译不完整或依赖声明错误

    • 确认appstart模块的module-info.java中已添加requires appfuncs;声明,且该文件已编译为module-info.class
    • 编译模块时需指定模块路径,比如编译appstart的命令应类似:
      javac -d mymodapp\appmodules\appstart --module-path mymodapp\appmodules appstart\src\module-info.java appstart\src\appstart\mymodappdemo\MyModAppDemo.java
      
    • 确保两个模块的所有类都已正确编译,没有编译错误
  • 模块路径的分隔符或引号问题
    Windows环境下模块路径用分号;分隔,但如果mymodapp\appmodules路径包含空格,需给整个路径加双引号,修改后的命令部分应为:

    --module-path "%JAVA_HOME%"\jmods;"mymodapp\appmodules"
    
  • 启动器参数的主类名错误
    检查主类的全限定名是否准确:appstart/appstart.mymodappdemo.MyModAppDemo中,模块名appstart和全限定类名appstart.mymodappdemo.MyModAppDemo必须与实际编译后的模块和类完全匹配(注意大小写,Java对类名和模块名大小写敏感)

内容的提问来源于stack exchange,提问作者Kay.Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:05:59