Download failed : Oracle JDK 7 is NOT installed,解決oracle jdk7的問題


先了解下概念:

jdk(java development kit),就是java的開發工具集,顧名思義就是做開發用的,其中包括javac,也就是java compiler等。
jre(java runtime environment),就是java程序的運行環境。所寫的java程序在經過javac編譯后會形成字符行文件,這個java的中間文件,計算機是看不懂的,而這個文件是給jvm(java的虛擬機)用的,由jvm進行解釋后形成機器語言給計算機。而這個jvm就在jre中,也就是說java程序的運行要有jre來擔當。
所以jdk和jre的區別就是一個用於開發,一個用於運行,聯系就是它們都是java開發者所必備的。
JDK > JRE,也就是說JDK已經包含了JRE,安裝JDK時候如果沒有JRE,會自動安上

ubuntu本地安裝東西的時候,老是會遇到:

download failed
Oracle JDK 7 is NOT installed.
dpkg: error processing oracle-java7-installer (--configure):
 subprocess installed post-installation script returned error exit status 1

官網看,不再支持6和7了:

安裝ORACLE JAVA 8

INSTALL ORACLE JAVA 8 IN UBUNTU OR LINUX MINT VIA PPA REPOSITORY [JDK8]

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

ok

dahu@dahu-OptiPlex-3046:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

如果還不是,可能本地裝了其他版本的java,

查看java程序的安裝位置:

dahu@dahu-OptiPlex-3046:~$ whereis java
java: /usr/bin/java /usr/share/java /opt/jdk1.8.0_72/bin/java /usr/lib/jvm/java-8-oracle/bin/java /usr/lib/jvm/java-8-oracle/jre/bin/java /usr/share/man/man1/java.1.gz

查看環境變量位置,如果出錯,可能是環境變量里,先放的位置的java程序被執行了,如下,/usr/local/jvm/jdk8/bin 這里的java先被執行了,而我剛剛裝的/usr/lib/jvm/java-8-oracle/bin在后面,這也是排查錯誤的一個方式

dahu@dahu-OptiPlex-3046:~$ echo $PATH
/usr/local/jvm/jdk8/bin:/home/dahu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

也可以查看看.bashrc文件,設置javahome位置

dahu@dahu-OptiPlex-3046:~$ tail -n3 ~/.bashrc
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

 

安裝openjdk

這個並不能解決開頭的錯誤,只是裝另一個jdk而已,參考的是給力星hadoop的安裝教程

Java環境可選擇 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中說的,新版本在 OpenJDK 1.7 下是沒問題的。為圖方便,這邊直接通過命令安裝 OpenJDK 7。

sudo apt-get install openjdk-7-jre openjdk-7-jdk

安裝好 OpenJDK 后,需要找到相應的安裝路徑,這個路徑是用於配置 JAVA_HOME 環境變量的。執行如下命令:

dpkg -L openjdk-7-jdk | grep '/bin/javac'

該命令會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是正確的路徑了。如輸出路徑為 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac,則我們需要的路徑為 /usr/lib/jvm/java-7-openjdk-amd64。

接着配置 JAVA_HOME 環境變量,為方便,我們在 ~/.bashrc 中進行設置(擴展閱讀: 設置Linux環境變量的方法和區別):

vim ~/.bashrc

在文件最前面添加如下單獨一行(注意 = 號前后不能有空格),將“JDK安裝路徑”改為上述命令得到的路徑,並保存:

export JAVA_HOME=JDK安裝路徑

如下圖所示(該文件原本可能不存在,內容為空,這不影響):

配置JAVA_HOME變量

配置JAVA_HOME變量

接着還需要讓該環境變量生效,執行如下代碼:

source ~/.bashrc # 使變量設置生效

設置好后我們來檢驗一下是否設置正確:

echo $JAVA_HOME # 檢驗變量值
java -version
$JAVA_HOME/bin/java -version # 與直接執行 java -version 一樣

如果設置正確的話,$JAVA_HOME/bin/java -version 會輸出 java 的版本信息,且和 java -version 的輸出結果一樣,如下圖所示:

成功配置JAVA_HOME變量

成功配置JAVA_HOME變量

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM