Mac echo $ JAVA_HOME返回空白

时间:2017-10-30 01:22:19

标签: java bash

我不知道为什么echo $ JAVA_HOME会返回空白

Abdelmajids-iMac:~majid $ vi .profile

export PATH=/usr/local/bin:(...)
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load 
RVM into a shell session *as a function*
export JAVA_HOME=$(/usr/libexec/java_home)
~                                                                                                    

~      


Abdelmajids-iMac:~ majid$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
Abdelmajids-iMac:~ majid$ vi .bash_profile
Abdelmajids-iMac:~ majid$ source .bash_profile
-bash: .bash_profile: line 1: syntax error near unexpected token `('
-bash: .bash_profile: line 1: `export PATH=/usr/local/bin:(...)'
Abdelmajids-iMac:~ majid$ echo  $JAVA_HOME

Abdelmajids-iMac:~ majid$ 

4 个答案:

答案 0 :(得分:4)

声明export JAVA_HOME=$(/usr/libexec/java_home)似乎不正确; bash会评估$()中的信息并返回一个空白。

应该是export JAVA_HOME=$(echo /usr/libexec/java_home)export JAVA_HOME=/usr/libexec/java_home

此链接中讨论了$()的用法。 Difference between ${} and $() in bash scripting

答案 1 :(得分:0)

$(str)其中str应该是一个命令。在您的情况下,$(/ usr / libexec / java_home)将不返回任何内容。 只需使用

export JAVA_HOME=/usr/libexec/java_home 

答案 2 :(得分:0)

我在安装 Amazon Corretto jdk15 后刚刚遇到了这个问题。但是,就我而言,我只是关闭并重新打开终端,一切正常,即运行

回声 $JAVA_HOME

它打印到控制台:

/Users/username/.sdkman/candidates/java/current.

答案 3 :(得分:0)

  • 在你的终端上创建一个 .zshrc 文件

    touch ~/.zshrc
    
  • 现在点击 go -> home -> 按 shift+command+。

  • 您现在可以看到隐藏的文件。打开 .zshrc 文件并输入:

    export JAVA_HOME=$(/usr/libexec/java_home)
    export PATH=/opt/homebrew/bin:$PATH