我跟着this thread来解决我的问题,我对JDK的不同版本有同样的问题,并且出于某种原因它没有用。当我向终端输入 JAVA_HOME 时,我仍然会收到 -bash:JAVA_HOME:找不到命令。 我有JDK1.8.0.45位于 Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home ,我可以使用 / usr / libexec / java_home 访问它
使用
echo" export JAVA_HOME =
/usr/libexec/java_home
" >> 〜/ .profile〜/ .profile中
我知道了 " 导出JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home " 保存到〜/ .profile ,我可以使用 / usr / bin / open~ / .profile
进行检查但我不明白为什么JAVA_HOME仍然无法正常工作,我需要这个来安装maven。
谢谢!
答案 0 :(得分:3)
我的〜/ .bash_profile 中包含此行,并且工作正常。
export JAVA_HOME=$(/usr/libexec/java_home)
这一行基本上说"运行名为/ usr / libexec / java_home的程序,并将其输出导出为名为JAVA_HOME的变量。"
我建议在文本编辑器中打开.profile或.bash_profile,而不是使用echo语句向其添加新行。通过这种方式,您可以查看文件中的所有内容,并确保文件中的其他旧行不会导致问题。
对.bash_profile进行更改后,请确保在测试之前打开一个新的终端窗口。
您可以通过回显其值来检查任何环境变量(包括JAVA_HOME)的值:
echo $JAVA_HOME
在我的例子中,echo命令的输出是: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
答案 1 :(得分:1)
可能你误解了一些事情。 JAVA_HOME
不是命令,它是一个环境变量。你不能在你的终端中呼叫JAVA_HOME
,因为 - 实际上 - 没有这样的命令,你的错误信息是什么。
您可以通过以下方式查看此变量的值:
echo $JAVA_HOME
如果已设置并指向正确的位置,那么它很好。一些期望设置此变量的工具(例如Maven或Java IDE)将运行良好。