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

在IntelliJ IDEA搭建OpenJDK11源码时遇‘package exists in another module’错误

解决‘java: package exists in another module: java.base’错误的方法

核心原因

你将OpenJDK 11源码当作普通Java项目导入,导致IntelliJ IDEA同时加载了Corretto 11自带的java.base模块与源码内的java.base模块,二者包路径重复引发冲突。

具体修复步骤

1. 重新以正确类型导入项目

  • 打开IDEA,选择File > New > Project from Existing Sources
  • 选中OpenJDK 11源码根目录,在导入向导里选择Import project from external model,再选Maven(OpenJDK 11基于Maven构建)
  • 按向导完成导入,确保勾选Search for projects recursively,让IDEA识别各模块的pom.xml文件

2. 配置SDK并排除冲突模块

  • 进入File > Project Structure > Project Settings > Project,将Project SDK设置为Corretto 11
  • 切换到Modules选项卡,找到java.base模块,点击右侧Dependencies标签页
  • 在Module SDK下拉框选择Corretto 11,再点击+号选择JARs or directories,添加OpenJDK源码中java.base目录下的src文件夹为Sources类型
  • 关键操作:在Dependencies列表中找到Corretto 11对应的依赖,点击Edit,在弹出窗口勾选Exclude,排除SDK自带的java.base模块(或直接删除该依赖,仅保留源码的java.base作为依赖)

3. 调整编译器参数

  • 进入File > Settings > Build, Execution, Deployment > Compiler > Java Compiler
  • 确保Use compiler选择javac,在Additional command line parameters中添加:--patch-module java.base=你的OpenJDK11源码路径/java.base(替换为本地实际路径)
  • 该参数用于用源码中的java.base修补SDK自带模块,避免冲突

4. 清理缓存并重构项目

  • 点击顶部Build > Clean Project
  • 再点击Build > Rebuild Project
  • 若仍有错误,执行File > Invalidate Caches... > Invalidate and Restart,清除IDEA缓存后重启

额外注意事项

  • 确保OpenJDK 11源码版本与Corretto 11版本一致(如均为11.0.xx),版本不匹配也可能引发异常
  • 不要直接将java.base源码文件夹添加为普通项目的Sources,必须通过模块依赖方式配置

内容的提问来源于stack exchange,提问作者aqingsao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:57:06