新版IntelliJ中Java 9模块化示例无法运行的解决方法
修复IntelliJ 2021.3.2中Java模块化项目无法运行main方法的问题
问题根源
IntelliJ 2021.3.2版本创建Java模块化项目的默认结构和2017年版本不同,新版本会自动生成一个名为java-modules的顶级聚合模块,但旧视频示例里没有这个模块,导致模块依赖关系混乱,main方法的运行配置无法正确关联到子模块。
具体修复步骤
删除多余的顶级模块
- 打开
File > Project Structure > Project Settings > Modules - 选中列表里的
java-modules模块,点击左上角的减号-移除它 - 弹窗里选
Remove Module(别选Delete Files,避免误删代码文件)
- 打开
确认子模块的模块化配置
每个子模块的根目录下必须有module-info.java文件,示例如下:
假设两个子模块分别是com.example.component和com.example.app:com.example.component的module-info.java:module com.example.component { exports com.example.component; }- 依赖它的
com.example.app的module-info.java:module com.example.app { requires com.example.component; }
配置main方法的运行参数
- 找到包含
main()方法的类,右键点击类名,选择Modify Run Configuration - 在配置窗口里,把
Module选项改成该类所属的子模块(别选原来的顶级模块) - 确认
JRE选择Java 11(后续升级到Java 17时,这里直接选对应版本即可)
- 找到包含
重建项目验证
点击Build > Rebuild Project,确保没有编译错误,之后再尝试运行main方法
后续升级Java版本的注意点
升级到Java 17或更高版本时,只需要在File > Project Structure > Project里,把Project SDK和Project Language Level切换到对应版本,模块化结构不需要额外调整。
内容的提问来源于stack exchange,提问作者neblaz
相关产品推荐
相关产品推荐

