我不知道为什么会发生这种情况,但是我的SDKMAN停止工作,并且仅针对我想列出,安装或使用的任何软件包显示以下消息。
$ sdk list java
Stop! java is not a valid candidate.
$ sdk install java
Stop! java is not a valid candidate.
$ sdk use java 8u131
Stop! java is not a valid candidate.
不过,只需输入sdk list
就可以了。但我什么也做不了。我的.bash_profile
包含以下内容:
export JAVA_HOME=$(/usr/libexec/java_home)
export SDKMAN_DIR="/Users/myusername/.sdkman"
[[ -s "/Users/myusername/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myusername/.sdkman/bin/sdkman-init.sh"
还要仔细检查是否将目标 sdk 放在版本前面。这不起作用:
sdk install 9.0.4-openjdk
停下!9.0.4-openjdk 不是有效的候选项。
正确指定它的工作原理是:
sdk install java 9.0.4-openjdk
问题出在服务器端。与SDKMAN的候选人API有关。如 GitHub 问题中所述,您可以使用以下命令来解决问题:
sdk flush candidates
确保之后重新启动终端。
今天遇到了同样的问题。使用sdk flush candidates
并重新启动终端后,我收到相同的消息。
所以不得不运行sdk update
然后重新启动终端。这又增加了候选人。
我的问题是以下导出
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh
不在~/.bashrc
文件的底部。发生这种情况是因为我安装了其他工具,这些工具最终位于~/.bashrc
的底部。
当我将其移动到底部并重新启动终端时sdk
开始工作。