我已经安装了从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版本。
六世~ / . 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运行良好
基本问题:/usr/bin/java最初指向OSX自己提供的(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java)
我们需要将它指向JDK安装程序下载的那个。以下步骤适用于OSX 10.10.4 Yosemite。
Open System Preferences -> select Java. The Java window opens.
Click on Java tab at the top. Click on 'View' button.
The Java Runtime Environment Settings tab opens as below:
Double click on the Path item and copy the path (cmd+c). This is the latest one installed by the JDK installer/updater. In my case, the path was /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
Open terminal. In this step, we are going to point (symbolic link, ln -s command) the system java binary to the latest one, which we discovered in the previous step. Run the below command:
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin。插件/内容/ Home / bin / java /usr/bin/java
这是它。要验证,只需运行
java - version
在终端上。它应该输出您安装/更新到的最新版本。
自从El Capitan之后,由于引入了新的“无根”策略,很难删除/usr/bin/java符号链接。
因此,我简单地将最新java版本的路径(在我的情况下,这是/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin)添加到我的.bashrc文件的path中:
# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH
要为当前会话重新加载.bashrc文件,请运行source ~/。Bashrc在壳里。您只需要对在更改.bashrc文件之前已经启动的会话执行此操作。
当你在shell中使用java时,现在使用的是最新版本。