我尝试设置我的JAVA_HOME变量以开始使用maven。这就是我的bash配置文件(在我的Mac上)
export JAVA_HOME="/usr/libexec/java_home"
当我运行$JAVA_HOME -V
时似乎工作得很好,但是maven并没有认为它设置得当。我已经阅读了一些博客:
export JAVA_HOME=$(/usr/libexec/java_home)
有什么区别?什么是第二个更好?
答案 0 :(得分:3)
/usr/libexec/java_home
不是Java主目录本身的路径,而是可执行文件,其输出是主文件夹的路径。
这就是为什么你需要第二种形式,它使用命令替换($(...)
)来捕获所述可执行文件的输出并将其分配给变量。
答案 1 :(得分:1)
第一个实例将JAVA_HOME
的值设置为字符串"/usr/libexec/java_home"
。第二个将其设置为命令/usr/libexec/java_home
的标准输出。
尝试运行/usr/libexec/java_home
以查看其输出结果。这可能是您希望将实际JAVA_HOME
设置为。
答案 2 :(得分:1)
$(命令)执行括号中的任何命令。
例如
$ echo $(echo hello $(echo world))
结果
hello world
,而
export JAVA_HOME="string"
只需将变量JAVA_HOME设置为该字符串
即可