Apple Silicon芯片MacBook安装JDK15及多版本管理求助
解决SDKMAN管理Oracle JDK15的问题
你遇到的核心问题是仅复制了/usr/bin下的Java相关符号链接,而这些并非完整JDK的可执行文件。Oracle官方DMG安装的JDK存放在系统标准目录中,需要完整迁移到SDKMAN的候选目录才能正常管理。
解决方案步骤
1. 定位Oracle JDK15的实际安装目录
Oracle JDK默认安装在/Library/Java/JavaVirtualMachines/目录下,先查看具体的JDK文件夹名称:
ls /Library/Java/JavaVirtualMachines/
你会看到类似jdk-15.0.2.jdk的目录,完整的JDK根目录是该文件夹下的Contents/Home。
2. 创建SDKMAN对应的JDK候选目录
在SDKMAN的Java候选目录下创建JDK15的版本目录:
mkdir -p ~/.sdkman/candidates/java/15.0.2-oracle
3. 完整复制JDK目录内容到SDKMAN目录
将JDK15的完整目录结构(包括依赖库、配置文件等)复制到SDKMAN的对应路径:
cp -R /Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home/* ~/.sdkman/candidates/java/15.0.2-oracle/
4. 切换并验证JDK版本
执行切换命令:
sdk use java 15.0.2-oracle
然后验证版本是否正常:
java --version
此时应该会输出JDK15.0.2的版本信息,不再出现Killed:9错误。
可选:设置为全局默认版本
如果需要将JDK15设置为全局默认版本,执行:
sdk default java 15.0.2-oracle
为什么之前的方法失败
/usr/bin下的java、javac等文件是系统的符号链接,指向的是系统级Java启动器(JavaLauncher),并非真正的JDK二进制文件。这些启动器依赖完整的JDK目录结构(如lib、jmods等文件夹)才能运行,仅复制符号链接会缺失所有核心依赖,导致进程被杀死。
内容的提问来源于stack exchange,提问作者Nagev
相关产品推荐
相关产品推荐

