M1芯片MacBook安装JDeveloper 12.2.1.x遇空指针异常求助
在M1芯片Mac上安装JDeveloper 12.2.1.3/12.2.1.4解决NullPointerException的方案
问题分析
出现的NullPointerException是因为Oracle安装器在ARM架构的M1 Mac上无法找到默认的Oracle Inventory指针文件,同时M1 Mac不支持以root用户运行该安装器。
解决步骤
1. 手动创建Oracle Inventory指针文件
安装器依赖这个文件定位Oracle产品目录,手动创建即可:
- 创建Inventory目录:
sudo mkdir -p /Library/Inventory - 创建指针文件
/etc/oraInst.loc,写入以下内容:inventory_loc=/Library/Inventory inst_group=admin - 设置文件和目录权限,确保当前用户可读写:
sudo chmod 644 /etc/oraInst.loc sudo chown -R $USER:admin /Library/Inventory
2. 以Rosetta 2模式运行安装器
JDeveloper 12c是x86架构程序,M1需要通过Rosetta转译运行,同时必须搭配x86版本的JDK8:
- 打开Rosetta模式终端:右键终端图标→显示简介→勾选「使用Rosetta打开」
- 确保安装的是x86_64架构的Zulu JDK8(ARM版JDK会导致兼容性问题),设置
JAVA_HOME指向该JDK:export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home - 执行安装命令:
java -jar jdev_suite_122130.jar
3. 安装后启动设置
JDeveloper启动时同样需要Rosetta支持:
- 右键JDeveloper.app→显示简介→勾选「使用Rosetta打开」,之后即可正常启动。
注意事项
- 全程使用普通用户操作,不要用root用户运行安装器,M1的root环境会导致安装流程异常。
- 必须使用x86版本的JDK8,ARM架构JDK与x86安装器兼容性极差,会触发各类错误。
内容的提问来源于stack exchange,提问作者Kresimir Zic
相关产品推荐
相关产品推荐

