2016-08-06 53 views
2

我的操作系统是Ubuntu 16.04 LTS。JDK版本不一致

$ cat /etc/profile # part content of this file 
JAVA_HOME=/usr/local/java/jdk1.8.0_101 
JRE_HOME=$JAVA_HOME/jre 
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
export JAVA_HOME 
export JRE_HOME 
export PATH 

$ echo $JAVA_HOME 
/usr/local/java/jdk1.8.0_101 

$ java -version 
java version "1.7.0_79" 
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) 
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) 

$ ls /usr/local/java/ 
jdk1.7.0_79/ jdk1.8.0_101/ 

为什么我的Java版本仍然JDK7?

+0

尝试使用'echo $ PATH',您将看到原因。 – EJP

回答

4

Ubuntu能够使用多个java版本。在您的情况下,这意味着您的系统中同时安装了JDK 7和JDK 8,但正在使用JDK 7.

要从一个Java版本切换到另一个,可以使用sudo update-alternatives --config java。这将列出系统中安装的所有JDK,只需输入对应于JDK 8的编号,然后切换到JDK 8.

+0

我认为OP正在使用自定义的Java安装。注意他的JAVA_HOME在/ usr/local中 – xuhdev

1

在您的命令行程序中运行which java。这会告诉你你正在运行的命令java来自哪里。

我怀疑是会告诉你“在/ usr/bin中/ JAVA” ...因为这个:

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 

提出新的bin目录到搜索路径,而不是开始的结束。

但是,更好的方法是使用另一个Answer所建议的alternatives。 (使用“/ usr/local”中的自定义安装,这将需要一些摆弄的东西来获得“备选方案”以了解替代方案。)