【问题标题】:sdkman on OSX can neither install nor uninstall Java 1.8OSX 上的 sdkman 既不能安装也不能卸载 Java 1.8
【发布时间】:2021-03-24 23:52:25
【问题描述】:

运行 OSX 10.15.7,sdkman 5.9.1+575。

sdkman 似乎已经进入了一个错误的状态,它认为 Java 1.8 既已安装又未安装。

$ sdk uninstall java 1.8.0 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
java 1.8.0 is not installed.
$ sdk install java 1.8.0 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
java 1.8.0 is already installed.
$ ls /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
ls: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk: No such file or directory

Java 1.8 是通过 sdkman 安装的并且工作正常,然后我运行了一个毯子 brew upgrade,我认为它试图升级我的 Java 版本。我不是 100% 认为这是原因 - 大约是一周前,终端会话早已不复存在,~/Library/Logs/Homebrew/openjdk 是空的。

我怎样才能让 sdkman 解开,或者我怎样才能发现更多关于问题所在的信息?

【问题讨论】:

  • sdkman 将所有候选人放在${HOME}/.sdkman/candidates/ 文件夹中。现在在文件夹${HOME}/.sdkman/candidates/java 中是什么样子的?你可以运行ls -la ${HOME}/.sdkman/candidates/java

标签: java macos sdkman


【解决方案1】:

我在 sdkman slack 频道中交叉发布了这个并得到了解决方案。在这里发帖供后人参考。

我的错误是使用 SDKMAN 来协调 brew 安装的 Java 版本。显然这非常麻烦,并且每次 brew 发布该 JDK 的新版本时都会中断。

解决步骤:

$ unlink ~/.sdkman/candidates/java/1.8.0
$ sdk install java 8.0.282.j9-adpt

这会将 sdkman 与 brew 版本的 Java 断开连接,并添加 Java 8 的并行安装。

【讨论】:

    最近更新 更多