让SDKMAN的JDK在macOS上「合法上岗」的全套骚操作
💡
原文中文,约3100字,阅读约需8分钟。
📝
内容提要
本文介绍了如何在macOS上使SDKMAN安装的JDK被系统识别。由于macOS自带的java_home不识别SDKMAN的JDK,作者提供了三步操作:创建虚拟房产、建立符号链接和伪造Info.plist文件。通过这些步骤,用户可以确保在使用Gradle等工具时不再出现找不到JDK的错误。
🎯
关键要点
- macOS自带的java_home不识别SDKMAN安装的JDK,导致使用Gradle时出现找不到JDK的错误。
- 为了解决这个问题,用户需要通过三步操作来让SDKMAN的JDK被系统识别。
- 第一步是创建一个虚拟房产,使用命令创建目录:sudo mkdir -p /Library/Java/JavaVirtualMachines/sdkman-current/Contents。
- 第二步是建立符号链接,将SDKMAN的JDK路径链接到虚拟房产中:sudo ln -s /Users/<YOUR_USERNAME>/.sdkman/candidates/java/current /Library/Java/JavaVirtualMachines/sdkman-current/Contents/Home。
- 第三步是伪造Info.plist文件,确保包含必要的字段以通过系统的验证。
- 完成这些步骤后,可以通过/usr/libexec/java_home命令验证JDK路径是否正确。
- 如果在操作后仍然无法识别JDK,可以检查符号链接和Info.plist文件的合法性。
- 注意,升级macOS系统后可能需要重新配置这些设置。
❓
延伸问答
如何在macOS上让SDKMAN安装的JDK被系统识别?
需要通过三步操作:创建虚拟房产、建立符号链接和伪造Info.plist文件。
创建虚拟房产的命令是什么?
使用命令:sudo mkdir -p /Library/Java/JavaVirtualMachines/sdkman-current/Contents。
如何建立符号链接?
使用命令:sudo ln -s /Users/<YOUR_USERNAME>/.sdkman/candidates/java/current /Library/Java/JavaVirtualMachines/sdkman-current/Contents/Home。
Info.plist文件需要包含哪些字段?
需要包含CFBundleIdentifier、CFBundleName和JavaVM等字段。
如何验证JDK路径是否正确?
可以通过/usr/libexec/java_home命令来验证JDK路径。
升级macOS后需要注意什么?
可能需要重新配置这些设置以确保SDKMAN的JDK被识别。
➡️