让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被识别。

🏷️

标签

➡️

继续阅读