Linux

安裝 OpenJDK 7 (JRE) 但僅在 ./jre/bin 中找到策略工具

  • December 27, 2013

我正在嘗試通過 apt-get 將 Java 7 安裝到我的 Ubuntu 機器上。我正在使用 apt-get 發出要安裝的命令:

sudo apt-get openjdk-7-jre

apt-get 聲稱安裝成功,但我似乎無法使用 OpenJDK 7。注意:我也嘗試過無頭版本並獲得了類似的結果。

我是 Linux 的新手,但與我安裝的 OpenJDK 6 JRE 相比,./jre/bin 目錄下應該有一個 java 文件。即:我的 OpenJDK 6 和 7 目錄的比較。

開放JDK 6:

root/bin/$ pwd
/usr/lib/jvm/java-6-openjdk-amd64/jre/bin
root/bin/$ ll
total 464
drwxr-xr-x 2 root root  4096 Dec 25 17:28 ./
drwxr-xr-x 5 root root  4096 Dec 19 22:01 ../
-rwxr-xr-x 1 root root   757 Jul  2 01:38 itweb-settings*
-rwxr-xr-x 1 root root 39480 Nov 16 17:28 java*
-rwxr-xr-x 1 root root  1260 Jul  2 01:38 javaws*
-rwxr-xr-x 1 root root 39472 Nov 16 17:28 keytool*
-rwxr-xr-x 1 root root 39552 Nov 16 17:28 orbd*
-rwxr-xr-x 1 root root 39552 Nov 16 17:28 pack200*
-rwxr-xr-x 1 root root 39480 Nov 16 17:28 policytool*
-rwxr-xr-x 1 root root 39472 Nov 16 17:28 rmid*
-rwxr-xr-x 1 root root 39480 Nov 16 17:28 rmiregistry*
-rwxr-xr-x 1 root root 39480 Nov 16 17:28 servertool*
-rwxr-xr-x 1 root root 39560 Nov 16 17:28 tnameserv*
-rwxr-xr-x 1 root root 87280 Nov 16 17:28 unpack200*

開放JDK 7:

root/bin/$ pwd
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin
root/bin/$ ll
total 16
drwxr-xr-x 2 root root 4096 Dec 25 17:33 ./
drwxr-xr-x 5 root root 4096 Dec 25 17:33 ../
-rwxr-xr-x 1 root root 6360 Jul 16 03:46 policytool*

如果這是正確的,我不確定如何繼續將 Java 7 設置為我的預設 Java。如果這是不正確的,我不確定如何更正。我嘗試解除安裝並重新安裝,結果相似。

編輯:以下命令的輸出。

java -version 安裝後的輸出:

root/~/$ java -version
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.4)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

dpkg -S $(type java | awk ‘{print $3}’) 安裝後的輸出:

root/bin/$ hash -r; dpkg -S $(type java | awk '{print $3}')
dpkg-query: no path found matching pattern /usr/bin/java.
root/bin/$ ll /usr/bin/java
lrwxrwxrwx 1 root root 22 Nov 19 13:40 /usr/bin/java -> /etc/alternatives/java*

update-alternatives 的輸出:

root/bin/$ update-alternatives --display java
java - auto mode
 link currently points to /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java - priority 1061
 slave java.1.gz: /usr/lib/jvm/java-6-openjdk-amd64/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java'.

解除安裝 openjdk-6-jre 後

root/~/$ java -version
The program 'java' can be found in the following packages:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
Try: apt-get install <selected package>
root/~/$

然後我嘗試使用安裝 Java 7,apt-get install openjdk-7-jre但現在又回到了起點;安裝了 Java 6 並且錯誤地安裝了 Java 7。

查看Ubuntu 的封包件列表中的文件列表,實際上發生了什麼是預期的行為,所以我猜可能 apt-get 儲存庫中的 OpenJDK 7 JRE 不適合命令行 Linux 發行版?

相反,我選擇在這里安裝 Oracle 的 Java 7 JDK/JRE 。

顯然你已經安裝了 java 6 和 7。如果您不需要它,解決這種情況的簡單方法可能是刪除 java 6:

sudo apt-get autoremove 'openjdk-6-jre*'

引用自:https://unix.stackexchange.com/questions/106599