Eclipse中启动prjTest报错:找不到自定义Java模块prjuno求解决
解决Eclipse中Maven模块化项目直接引用时的模块找不到问题
问题场景
在Eclipse 2023-03 (4.27.0)、JDK 17.0.5环境下,创建两个Maven模块化项目:
prjuno:自定义模块,包含sm.clagenna.prjuno.PrimoProg类,module-info.java声明exports sm.clagenna.prjunoprjTest:测试模块,module-info.java声明requires prjuno,代码中调用prjuno的类
已将prjuno添加到prjTest的Modulepath中,但运行prjTest时抛出错误:
Error occurred during initialization of boot layer java.lang.module.FindException: Module prjuno not found, required by prjTest
将prjuno安装到本地Maven仓库后通过依赖引用则运行正常。
解决方案
方案1:手动配置运行时模块路径
- 右键
prjTest项目 → Run As → Run Configurations... - 选择对应的Java Application配置(无则新建)
- 切换到Arguments标签页,在VM arguments中添加:
--module-path "${workspace_loc:/prjuno/target/classes}:${module_path}" - 点击Apply后重新运行程序。
方案2:通过Maven项目依赖关联(无需本地安装)
修改prjTest的pom.xml,添加prjuno的项目依赖:
<dependencies> <dependency> <groupId>sm.clagenna</groupId> <artifactId>prjuno</artifactId> <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies>
执行prjTest的Maven → Update Project,Eclipse会自动维护模块路径,运行即可正常调用。
方案3:检查Eclipse项目基础配置
- 确认
prjuno的module-info.java位于源目录根路径(与包目录同级) - 确认
prjTest的Build Path中,prjuno是添加到Modulepath而非Classpath - 两个项目的Java Compiler版本统一设置为17,预览特性保持一致
原因说明
Eclipse处理Maven模块化项目的直接项目引用时,偶尔无法自动将依赖项目的编译输出目录纳入运行时模块路径,导致JVM启动时找不到依赖模块。通过Maven依赖声明或手动指定模块路径,可强制JVM识别到所需模块。
内容的提问来源于stack exchange,提问作者Claudio
相关产品推荐
相关产品推荐

