網(wǎng)上的文章一般都這樣寫:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
但是,在我的系統(tǒng)上會提示:
...
download failed
Oracle JDK 8 is NOT installed.
...
跟蹤日志分析了一下,原來是Oracle已經(jīng)出了新版本(寫這個文章的時候是u161了),然而這個oracle-java8-installer里配置的還是舊版本(u151)
需要手工替換一下
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u161|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="6dbc56a0e3310b69e91bb64db63a485bd7b6a8083f08e48047276380a0e2021e"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_161|' oracle-java8-installer.*
解析一下:
- 去到/var/lib/dpkg/info目錄
- 把版本號替換到Oracle提供下載的版本
- 把下載的URL替換成Oracle提供下載的版本,注意,只是替換路徑,最終的文件名是這個腳本自動計算的。
- 替換checksum,可以在Oracle的網(wǎng)站上得到這個checksum。腳本里有很多不同版本的checksum(不同的CPU架構(gòu)和系統(tǒng)架構(gòu)),你不嫌麻煩可以一個一個替換,我就只替換我自己實際用到的那個就完事了。
PS:為了編譯Android源代碼,又玩起了Linux,感覺又有了不斷自己分析問題,解決問題的樂趣了。