Intellij Idea 通过SDKMAN安装的Java不适用于Bash Terminal

polkgigr  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(175)

我是一个Mac用户,我已经通过SDKMAN安装了Java 11。我使用zsh终端在VSCode和IntelliJ中运行和编译java代码没有问题,但是当我使用bash(我的首选)时,我得到以下错误消息。
“无法完成操作。找不到Java安装包。请访问http://www.java.com以获取有关安装Java的信息。”
我在bash_profile中有以下配置

# make .bash_profile same as .bashrc
if [ -f "${HOME}/.bashrc" ]; then source "${HOME}/.bashrc" fi export JAVA_HOME=$(/usr/libexec/java_home)
THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"

字符串
还有其他配置我需要让java使用bash工作吗?
还有一点需要注意的是,这个问题只存在于我正在使用的IDE终端中。我可以使用Macbook终端和bash,没有任何问题。我还确保两个IDE都有适当的JDK设置/指向SDKMan“当前”版本的Java。
任何帮助将不胜感激。
我已经在我使用的IDE中配置了Java,但这并不能解决这个问题。另外,需要明确的是,Java可以工作,我可以使用zsh终端编译代码。我只是在这些IDE中使用bash终端时遇到了这个错误。

7gcisfzg

7gcisfzg1#

嗯,我不知道这是否可能是配置的问题,但你在fi之前缺少了';'(也检查是否在同一行导出,因为不需要分隔符或新行)
之前:

if [ -f "${HOME}/.bashrc" ]; then source "${HOME}/.bashrc" fi

字符串
之后:

if [ -f "${HOME}/.bashrc" ]; then source "${HOME}/.bashrc"; fi


我有额外的问题:

  1. JAVA_HOME=$(/usr/libexec/java_home)的路径是不是真的是java所在的目录?为什么需要这个变量?(如果需要的话,请放在新的一行)。我用的是ubuntu,所以可能会有不同,但我的机器打印**/home/[username]/.sdkman/candidates/java/current**时,echo $JAVA_HOME
    1.你确定带sdk的片段在文件的末尾吗?
    请记住,在更新.bashrc后,您需要重置temrinal。

相关问题