为什么 sdkman 不更改我的默认 java 版本?

jMa*_*Man 7 java sdkman

更新升级sdkman、删除.sdkman并重新安装、卸载java包并重新安装后,该问题仍然存在。

me@myMachine myProject $ sdk default java 8.0.252.hs-adpt
Default java version set to 8.0.252.hs-adpt
me@myMachine myProject $ sdk default java
Default java version set to 11.0.7.hs-adpt
Run Code Online (Sandbox Code Playgroud)

sdk current javajava -version反映更改,但在关闭并重新打开终端或打开不同的窗口或应用程序时恢复到 11.0.7。

cab*_*i99 5

我只是碰巧在 Manjaro 上遇到了这个错误。更新 SO 后,所以错误现在/usr/bin/java指向更新上安装的默认 java。

所以我只是删除了更新中安装的所有 Java 版本,因为我只需要使用 sdkman。

sdk home java 8.0.232.hs-adpt
Run Code Online (Sandbox Code Playgroud)

这样我就可以看到我的案例中的候选人在哪里:

/home/xxxx/.sdkman/candidates/java/8.0.232.hs-adpt
Run Code Online (Sandbox Code Playgroud)

所以在删除所有java之后:我运行java -version我发现不再有java了。

所以我强制更新sdkman

sdk selfupdate force
Run Code Online (Sandbox Code Playgroud)

然后安装后

source "$HOME/.sdkman/bin/sdkman-init.sh"
Run Code Online (Sandbox Code Playgroud)

可以肯定的是我跑了:

ls -al /usr/bin/java
Run Code Online (Sandbox Code Playgroud)

lrwxrwxrwx 1 root root 37 五月 16 2020 /usr/bin/java -> /usr/lib/jvm/default-runtime/bin/java

现在它指向 sdkman 应该的位置:

就是这样,现在我可以使用 sdkman 再次更改版本。

sdk use java 11.0.5.hs-adpt
Run Code Online (Sandbox Code Playgroud)