Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
当前回答
/usr/ libeexec /java_home不是一个目录,而是一个可执行文件。它输出当前配置的JAVA_HOME,并且不实际更改它。这就是Java Preferences应用程序的作用,在我的例子中,它似乎坏了,实际上没有正确地更改JVM。它确实列出了1.7 JVM,但我可以切换/取消切换和拖放我想要的一切,而不实际改变/usr/libexec/java_home的输出。
即使在Lion上从Oracle安装了1.7.0 u6并在首选项中将其设置为默认值后,它仍然返回apple 1.6 java home。唯一对我有效的修复是手动设置JAVA_HOME:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
至少这样,当从命令行运行时,它将使用1.7。/usr/libexec/java_home仍然坚持1.6。
更新:在OSX上从命令行理解Java有更好的解释如何工作。
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
就是这样做的。注意,将其更新到1.8就可以了。
其他回答
对我来说,Mountain Lion 10.8.2,大多数人投票的解决方案不起作用。 我通过Oracle安装了jdk 1.7,从homebrew安装了maven。
我的解决方案来自hadoop的hadoop-env.sh文件,我也从homebrew安装。 我在~/中加入了下面的句子。Bash_profile,它可以工作。
export JAVA_HOME="$(/usr/libexec/java_home)"
此解决方案也适用于从Oracle安装Java 1.8的OS X Yosemite。
在我升级我的Mac OS后,我也遇到了同样的问题,以下是我的工作:
cmd > vi ~ / . bash_profile 为JAVA_HOME添加/更新行: 出口JAVA_HOME = " /图书馆/ Java / JavaVirtualMachines / jdk1.7.0_15.jdk /内容/家” ~ / cmd >来源。Bash_profile或打开一个新终端
我认为jdk版本可能不同,所以只使用你在/Library/Java/JavaVirtualMachines/下的版本
如果你需要在Mac OS X (Yosemite)下使用多个版本的JDK,添加一些脚本以便在它们之间自动切换可能会很有帮助。
您要做的就是编辑~/。Bash_profile,并添加如下内容:
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
该脚本所做的是首先删除PATH中的其他JDK版本,这样它们就不会干扰我们的新JDK版本。然后,它巧妙地使用了/usr/libexec/java_home命令,该命令列出了已安装的JDK版本。-v参数告诉java_home返回JDK提供版本的路径,例如1.7。我们还将PATH更新为指向新找到的JAVA_HOME目录的bin目录。最后,我们可以简单地使用
setjdk 1.7
它会选择最新安装的1.7分支JDK版本。要选择一个特定的版本,只需执行即可
setjdk 1.7.0_51
代替。运行/usr/libexec/java_home -V以获得关于如何选择版本的更多详细信息。
附注:不要忘记来源~/。保存后的Bash_profile。
对于Mac OS X 10.9,我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home。
我相信有更好的方法,但这让我开始运行。
hughsmac:~ hbrien$回溯$JAVA_HOME / Library / Java / JavaVirtualMachines jdk1。7 . 0_45 jdk /地点/ Home。
我必须在我的Macbook air上明确地将它设置为准确的路径。
步骤是:
尝试回显$JAVA_HOME(如果设置了,它会显示路径),如果没有,尝试使用sudo find /usr/ name *jdk搜索它 使用- sudo nano ~/.bash_profile编辑Bash p 添加JAVA Home的确切路径(使用上面第2步中的路径) 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.8.0_144.jdk /内容 保存并退出 使用- echo $ JAVA_Home检查JAVA_Home
我在Macbook Air上使用JAVA 8运行MACOS MOJAVE - 10.14.2 (18C54)