IntelliJ搭建多模块Maven项目运行报错:无法访问java.lang.Object及找不到String类
解决IntelliJ中WebSphere多模块Maven项目找不到Java核心类的问题
别慌,这个问题我之前帮同事排查过类似的,核心原因基本都是JDK/SDK关联错误或者Maven编译配置不匹配,导致IDE没法正确识别Java核心类库(比如java.lang.Object、java.lang.String),才会出现离谱的自动导入org.apache.xpath.operations.String的情况。咱们一步步来修复:
1. 检查项目与模块的SDK配置
首先得确保IntelliJ用的是正确的JDK:
- 打开
File > Project Structure(快捷键Ctrl+Alt+Shift+S) - 切换到
Project标签页,确认Project SDK是你对应WebSphere 9.0.5.0的JDK(WebSphere 9一般适配Java 8,别选错成其他版本) - 再到
Modules标签页,逐个检查每个子模块的Dependencies,保证Module SDK和Project SDK一致,没有红叉或者错误的依赖引用
2. 关联WebSphere服务器的正确SDK
WebSphere服务器本身需要绑定对应的JDK,不然运行时会找不到核心类:
- 打开
Run > Edit Configurations,找到你的WebSphere服务器配置 - 切换到
Server标签页,确认Server SDK选择的是正确的JDK(不是只选服务器本身,要关联到本地的Java 8 SDK) - 如果配置混乱,建议删除现有服务器配置,重新添加WebSphere服务器,让IDE自动关联正确的SDK
3. 修正Maven pom.xml的编译配置
父模块的pom里必须明确指定Java版本,避免编译时版本不匹配:
在父模块的<properties>里添加或修改:
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.release>8</maven.compiler.release> </properties>
- 同时检查所有子模块的pom,确保没有覆盖这些配置,也没有引入会冲突的依赖(比如奇怪的xpath依赖导致IDE误识别String类)
- 配置完后,点击右侧Maven面板的
Reload All Projects刷新配置
4. 清理IDE缓存并重启
有时候IntelliJ的缓存会抽风,导致类识别错误:
- 执行
File > Invalidate Caches... > Invalidate and Restart,让IDE彻底清理缓存并重启
等这些步骤做完,你会发现java.lang.Object和String的错误都消失了,IDE也不会再乱提示导入xpath的String类了。
内容的提问来源于stack exchange,提问作者Lisa Hennecart
相关产品推荐
相关产品推荐

