2016-08-06 54 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」中的自定義安裝,這將需要一些擺弄的東西來獲得「備選方案」以瞭解替代方案。)