我已经安装了从oracle网站下载的JDK 7u7。但是安装完成后,终端仍然显示java版本6

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

你知道为什么Java 7没有出现吗?

答: 好的,问题已经解决了。以下是答案: 我发现我的终端有一个.bash_profile, java主变量被设置为1.6

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

所以这就是每次我打开新终端窗口时导致问题的行。 只要去掉这条线就能解决问题。您仍然需要遵循@aleroot所说的,但如果这对您不起作用,请检查.bash_profile(或.bashrc)设置文件,以查看您之前是否导出过任何java版本。


当前回答

我遇到过类似的问题,终端没有更新java版本以匹配安装在mac上的版本。

设置JAVA_HOME环境变量没有问题

我想出了一个暂时的,有点痛苦但有效的解决方案。

在你的.bash_profile中添加这样一行:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(这是我的机器上的路径,但可能与你的不同,请确保获得你的路径。路径应该匹配/Library/Java/JavaVirtualMachines/)

运行source ~/.bash_profile

正如我提到的,这是一个临时的权宜之计解决方案,因为java主路径是硬编码的。实际上没有办法设置获取最新的路径,因为这是苹果应该已经为终端做的事情,问题是苹果的java_home环境变量没有更新。

其他回答

因为你需要在Java Preferences窗格中输入,并以这样的方式只标记JVM 7:

要在Mac OS X中轻松快速地打开Java首选项窗格,您可以简单地使用⌘+SPACE调用spotlight,并键入系统首选项,它将显示在窗口的最后一行。

我认为你可以尝试安装jdk而不是jre。通过安装jdk, /usr/bin/java中的java将被替换,所有库将正常工作。

从Oracle站点通过分布式JDK DMG安装会自动更新所有内容。我已经看到(在El Capitan)更新通过系统首选项> Java做更新,但不反映到命令行。通过DMG进行安装就可以了。

我通过重新安装优胜美地解决了这个问题,然后在终端上交叉检查java版本(java -version)和(javac -version) . it现在工作完美。它不会更改到java 7,因为版本6仍然存在于(command + n) libray>java>javavirtualmachine>您的javac当前版本。你需要地址到Java家。

更新

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

https://stackoverflow.com/a/28635465

旧版本 对我来说,最简单、最干净的方法是使用下面描述的自制程序安装Java:

https://stackoverflow.com/a/28635465

brew update
brew cask install java