Ubuntu 18.04+NetBeans 10.0+OpenJDK11出现java.lang包找不到致命错误求助
解决NetBeans 10.0 + OpenJDK 11在Ubuntu 18.04下找不到java.lang的问题
我之前在Ubuntu环境下折腾NetBeans和JDK的时候也碰到过类似的核心类库找不到的问题,结合你的情况,给你几个具体的排查和修复步骤:
1. 确认NetBeans的JDK平台配置
打开NetBeans后,依次点击Tools > Java Platforms:
- 检查列表里是否已经添加了OpenJDK 11,路径是否指向Ubuntu下的标准JDK目录(一般是
/usr/lib/jvm/java-11-openjdk-amd64/) - 如果没有添加,点击
Add Platform,选择Standard Java SE,然后浏览到上述JDK目录完成添加 - 最后把这个OpenJDK 11设置为默认平台(点击列表里的JDK,再点
Set as Default)
2. 验证OpenJDK 11的完整性
虽然java -version显示正常,但有可能JDK的核心类库文件缺失。执行以下命令检查:
ls /usr/lib/jvm/java-11-openjdk-amd64/lib/
你应该能看到modules目录(JDK 9+采用模块化结构,替代了旧的rt.jar)。如果目录缺失或者内容不全,重新安装完整的JDK包:
sudo apt-get install --reinstall openjdk-11-jdk
3. 修正NetBeans的启动JDK配置
有时候NetBeans会默认使用系统里的其他JDK版本,导致项目创建时出错。找到NetBeans的配置文件:
~/netbeans-10.0/etc/netbeans.conf
编辑这个文件,找到netbeans_jdkhome这一行,修改为指向OpenJDK 11的路径:
netbeans_jdkhome="/usr/lib/jvm/java-11-openjdk-amd64"
保存后重启NetBeans,再尝试创建新项目。
4. 重置NetBeans用户缓存
如果是项目模板或者用户配置损坏导致的问题,可以删除NetBeans的用户缓存目录,重置到初始状态:
rm -rf ~/.netbeans/10.0/
重启NetBeans后,重新尝试创建Java项目。
如果以上步骤都无效,建议你升级NetBeans到11.x版本——NetBeans 10.0对JDK 11的支持还存在一些兼容性小问题,而11.x版本对JDK 11的适配更完善,大概率能解决这个问题。
内容的提问来源于stack exchange,提问作者Romain CAILLIERE




