
我遵循了此處所述的所有說明問題,但我在最後一部分遇到了一些問題。
我實際上有 java 6.22 版本,想更新到 6.30 版本。
因此,在將提取的目錄移入後java-6-oracle
,/usr/lib/jvm
我不知道該怎麼辦,因為上面答案中指出的腳本從 java 5 更新到 java 6。
為了清楚起見,如果我執行ls
in dir ,這裡是輸出/usr/lib/jvm
:
$ ls -l /usr/lib/jvm
total 8
lrwxrwxrwx 1 root root 14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx 1 root root 14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle
drwxr-xr-x 7 root root 4096 2012-02-24 14:43 java-6-openjdk
我現在該怎麼做?
添加部分
在@fossfreedom的建議下,我無論如何運行了腳本,實際上它更新了java版本。
事實上,如果我運行命令java -version
輸出將如下:
$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
有仍然是一個問題,如果 Irunjavac -version
它給我安裝的舊版本:
$ javac -version
javac 1.6.0_22
如果我在這裡使用測試儀關聯它會告訴我版本是
Java Version 1.6.0_22 from Sun Microsystems Inc.
出了什麼問題?
看來Java執行時間環境已更新,但Java編譯器和Java瀏覽器插件尚未更新。
我怎樣才能更新它們?
其他附加部分
sudo update-alternatives --config java
將返回以下輸出
$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6.31-oracle/bin/java 1062 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-6.31-oracle/bin/java 1062 manual mode
Press enter to keep the current choice[*], or type selection number:
這些都是有道理的,因為 JRE 已正確更新到版本 6.31,問題出在 Java 編譯器和 Java 瀏覽器外掛程式。
有任何想法嗎?
答案1
關於你的第一個問題:
也許您可能會感到困惑,webupd8 腳本是 0.5b。這是腳本的版本 - 它不是指 java 版本。
進一步進行javac版本的設定。
我懷疑你需要明確給出 javac 編譯器的路徑
IE
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1
其次是:
sudo update-alternatives --config javac
關於設定 java chrome 插件。
大師提問:
包含此資訊 - 由於您的資料夾結構略有不同,您的連結命令應該是:
ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/
答案2
看這;跑步
sudo update-java-alternatives --list
按名稱和目錄列出電腦上的所有 Java 安裝,然後執行
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
選擇要使用的 JRE/JDK。
如果您想要為每個 Java 任務使用不同的 JDK/JRE,您可以執行 update-alternatives 一次設定一個 java 執行檔;你可以跑
sudo update-alternatives --config java[Tab]
查看可以設定的 Java 指令(java、javac、javah、javaws 等)。進而
sudo update-alternatives --config [javac|java|javadoc|etc.]
將該 Java 任務/指令關聯到特定的 JDK/JRE。
您可能還需要為某些應用程式設定 JAVA_HOME:這個答案您可以使用
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
對於 JRE,或者
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
對於 JDK。
答案3
我認為您應該看一下包update-java-alternatives
中的命令java-common
及其*.jinfo
使用的文件。有了它,您應該能夠在 java 安裝之間完全切換(無論 JDK、JRE,...)。
答案4
如果您要手動設定 javac javaws javadoc 或任何其他 java 相關命令的替代命令,您可能希望使它們成為 java 替代命令的奴隸。
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"
update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links
:/opt/jdk1.8.0_74$ sudo update-alternatives --display java
java - 自動模式連結最佳版本是 /opt/jdk1.8.0_74/bin/java 連結目前指向 /opt/jdk1.8.0_74/bin/java 連結 java 是 /usr/bin/java 從屬 javadoc 是 /usr/bin /javadoc /opt/jdk1.8.0_74/bin/java - 優先權0 從屬javadoc:/opt/jdk1.8.0_74/bin/javadoc
將 /opt/jdk1.8.0_74/ 改為安裝 jdk 的目錄。