Eclipse模块化项目第二源码文件夹类启动配置运行失败如何解决
问题成因
该问题是Eclipse 4.21及相近版本处理多源码文件夹模块化Java项目的已知逻辑缺陷:
- 模块化Java项目运行时要求所有包含业务代码的源码文件夹对应的输出目录,都必须被纳入JVM的模块路径扫描范围,否则无法识别对应路径下的类
- Eclipse右键为非首个源码文件夹下的主类自动生成运行配置时,仅会将主类所在单个源码文件夹加入编译路径,不会主动将项目所有源码文件夹的输出目录同步到运行时的模块路径中,因此触发类找不到的报错
- 你修改Main1的运行配置可正常启动的原因是:首个源码文件夹对应的默认运行配置,已经将项目全部已配置的源码文件夹输出目录纳入了模块路径,仅修改主类名称不会破坏该配置。
解决方案
手动修正现有运行配置
- 右键
Main2选择Run as->Run Configurations - 在左侧菜单找到对应
Main2的Java Application配置项,切换到Dependencies标签页 - 找到
Modulepath分组,点击Add Projects按钮,勾选当前项目后确认,点击Apply保存配置即可正常运行 - 也可以直接点击该标签页的
Restore Defaults按钮,Eclipse会自动重新扫描项目全部源码目录补全模块路径配置
永久修复默认生成逻辑
针对后续所有新建的多源码文件夹模块化项目,可通过修改默认JVM参数避免重复配置:
- 打开Eclipse顶部菜单
Window->Preferences->Java->Installed JREs - 选中你项目使用的JDK版本,点击
Edit按钮 - 在
Default VM arguments输入框中添加如下参数:
--module-path ${project_classpath:${project_name}}
- 点击
Apply and Close保存配置即可,后续右键任意源码文件夹下的主类生成的运行配置都会自动补全模块路径。
内容的提问来源于stack exchange,提问作者user11595728
相关产品推荐
相关产品推荐

