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

测试Java模块依赖时遭遇Module not found错误求助

解决Java模块化编译"module not found: park"问题

以下是针对你遇到的编译错误的具体解决步骤和排查要点:

  • 规范park模块的编译输出结构
    编译park模块时,必须将生成的.class文件放在以模块名为根的目录结构下,不能直接散放。执行编译命令时指定输出目录,比如:

    javac -d mods/park park/module-info.java park/employees/*.java park/props/*.java
    

    执行后,mods/park目录下会包含module-info.class,以及对应包结构的.class文件(如park/employees/Cleaner.class),这是javac识别模块的标准结构。

  • 编译services时指定模块路径
    编译依赖模块时,必须通过--module-path(简写-p)参数告诉javac去哪里查找已编译好的park模块。正确的编译命令示例:

    javac -d mods/services --module-path mods services/module-info.java services/parkcleaning/*.java
    

    这里的mods是存放park模块的父目录,javac会自动在该目录下扫描名为park的模块目录。

  • 检查模块声明的正确性

    1. 确认services模块的module-info.java正确声明依赖:
      module services {
          requires park;
      }
      
    2. 同时park模块需要导出被services访问的包,否则后续会出现权限错误:
      module park {
          exports park.employees;
          // 若props包也需被访问,添加对应exports声明
      }
      
  • 排查常见细节错误

    • 模块名区分大小写:确保park模块的module-info.java中声明的模块名,与services里requires的名称完全一致。
    • 不要将park的.class文件直接放在mods根目录,必须放在mods/park子目录下,javac是按模块名目录识别模块的。
    • --module-path指向的是包含所有依赖模块的父目录,不是单个模块的具体路径。

内容的提问来源于stack exchange,提问作者Mario Mateaș

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:20:31