我已经安装了从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 Preferences窗格中输入,并以这样的方式只标记JVM 7:

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

其他回答

我用 Sudo rm /usr/bin/java

我下载并安装了最新的Java SE Runtime Environment: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.使用实例jdk/Contents/Home/jre/bin/java /usr/bin/java不适合我,因为我得到了操作不允许。El Capitan现在以“无根”模式保护某些系统目录(又名系统完整性保护)。它适用于macOS Sierra,可能在可预见的未来也适用于新的macOS版本。

Oracle的安装程序将java放在/Library/Internet plug - in /JavaAppletPlugin.plugin中。它不会覆盖/usr/bin/java.所以,如果你发行一个

whereis java

在终端中,它将返回/usr/bin/java.(反过来指向/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java,这是苹果的1.6版本)。

所以,如果你想使用新的java版本,替换/usr/bin/java符号链接,使其指向/Library/Internet\ Plug-Ins/JavaAppletPlugin。插件/内容/ Home / bin / java相反:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin

如果你的机器上有几个Java版本,你想在运行时动态地选择它,也就是说,在我的情况下,我有两个版本:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

您可以通过修改/etc/profile内容来更改它们。只需在文件末尾添加(或修改)以下两行:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

在我的情况下,如果我想使用,它应该如下所示:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

保存文件后,请运行source /etc/profile,它应该可以工作。以下是我使用第一种和第二种选择时的结果:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

如果您的java文件夹位于不同的位置,这个过程是类似的。

在我的案例中,问题是Oracle将它安装到与我习惯的位置不同的位置。

从Oracle下载:http://java.com/en/download/mac_download.jsp?locale=en

Verify that it's installed properly by looking in System Prefs: Command-Space to open Spotlight, type 'System Preferences', hit enter. Click Java icon in bottom row. After the Java Control Panel opens, click 'Java' tab, 'View...', and verify that your install worked. You can see a 'Path' there also, which you can sub into the commands below in case they are different than mine. Verify that the version is as you expect (sub in your path as needed): /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version Create link from /usr/bin/java to your new install sudo ln -fs /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java Sanity check your version: java -version

六世~ / . bash_profile

add

export JAVA_HOME= ' /usr/libexec/ JAVA_HOME -v 1.7 '

这告诉你的/usr/bin/java链接目标使用最新的Java 7包安装

/ Library / Java / JavaVirtualMachines

因此对于JDK 1.7.0_17 JAVA_HOME将是:

/ Library / Java / JavaVirtualMachines jdk1。7 . 0_17 jdk /地点/ Home。

注意:最近在这个领域有很多变化,Mac OS X从苹果自己的系统集成Java包转移到基于Oracle的Java包。上述解决方案在Mac OS X 10.8.2运行良好