昨日から、Ubuntu マシンに JDK8 をインストールしようとしていますが、失敗し続けています。
次のコマンドを実行しようとしました:
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
sudo apt-get install oracle-java8-installer
しかし、コマンドを実行すると次のメッセージしか表示されないため、続行できません。
...
Connecting to download.oracle.com (download.oracle.com)|23.215.130.99|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-10-18 11:07:34 ERROR 404: Not Found.
download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
subprocess installed post-installation script returned error exit status 1
...
私のセットアップは 64 ビット Ubuntu 14.04 です。
ベストアンサー1
グーグルでいろいろ調べた結果、答えが見つかりましたUbuntuフォーラム。
基本的に、問題は Java の新しいバージョンがあり、インストーラーがそれを参照するように更新されていないことにあるようです。
あなたのマシンがLinux x64とAMD64プロセッサ、最新のJava8バージョンが必要で、以前にバージョンをインストールしていた場合は8u212
、これらのコマンドを実行することで簡単に修正できます(元のバージョンのクレジットは翻訳者):
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u212|JAVA_VERSION=8u221|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=https://download.oracle.com/otn/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/|PARTNER_URL=https://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ=.*|SHA256SUM_TGZ="15ad4f7260d2416ac1558341d9d0a0ec5b83904e4ac4a22c8a3242e4e217649b"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_212|J_DIR=jdk1.8.0_2221|' oracle-java8-installer.*
そして、通常どおり JDK 8 インストーラー コマンドを実行します =):
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
あなたのマシンがない1つのLinux x64 AMD64、以前のバージョンで8u212
はJava 9をお探しですか?まあ、あなたはラッキーです。今日は、自分のニーズに合わせて Java インストーラーを修正する方法を学ぶ日です。
このチュートリアルでは、Java 8u181 が必要であり、以前に Java 8u171 がインストールされているものと想定します (これが私の持っているものなので)。
まず、JavaのJDKダウンロードページ(Java8の場合、ここに行く「ダウンロード」をクリックしてくださいタブ、そして「Java SE 8u181」リンク)。
次に、マシンに応じて必要な JDK バージョンを調べます。私の場合、マシンは Ubuntu 14.04 64 ビットで実行されているため、「Linux x64」が必要です。
必要なダウンロードへのリンクをコピーします。ライセンス契約に同意することを忘れないでください。私の場合 (Linux x64) では、次のものが必要ですhttp://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
。
このチュートリアルでは、リンクのパスのみが必要です: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/
。後で必要になるので、安全な場所に保管してください。
次に、ページ内のチェックサムリンクを調べてクリックして。
これにより、プレーンな HTML テーブル ページが表示されます。sha256
お使いのマシンに適合するものを探してください。
繰り返しますが、私のマシンは「Linux x64」なので1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3
、図のように が必要です。値をコピーして安全な場所に保管してください。後で必要になります。
次に、マシン上でターミナルを開き、Java インストーラー ファイルがあるフォルダーを入力します。
cd /var/lib/dpkg/info
よし、これを実行しましょう:
sudo grep --color -P "JAVA_VERSION=[a-z0-9]+" oracle-java8-installer.config
出力は次のようになります。
これは、インストーラがインストールするように設定されている Java バージョンを示します。したがって、これらの値を簡単に変更するには、次のように実行します。
sudo sed -i 's|JAVA_VERSION=<INSTALLER CURRENT JAVA VERSION HERE>|JAVA_VERSION=<NEW VERSION HERE>|' oracle-java8-installer.*
8u171
今回の場合、からにアップグレードする8u181
ので、以下を実行します。
sudo sed -i 's|JAVA_VERSION=8u171|JAVA_VERSION=8u181|' oracle-java8-installer.*
さて、ダウンロード URL を更新する必要があります。
sudo grep --color -P "PARTNER_URL=[^ ]+" oracle-java8-installer.config
更新するには、次のようなコマンドを実行する必要があります。
sudo sed -i 's|PARTNER_URL=<INSTALLER CURRENT JAVA URL HERE>|PARTNER_URL=<NEW URL HERE>|' oracle-java8-installer.*
最初に保存するように言った URL を覚えていますか? 今必要になります。次のように新しい URL として配置します。
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/|' oracle-java8-installer.*
その後、チェックサムを更新する必要があります。次のコマンドを実行してください。
sudo grep --color -P '[^#]SHA256SUM_TGZ="[^"]+"' oracle-java8-installer.config
これにより、いくつかの異なる SHA256 が出力されます。
これらはすべて異なることに注意してください。これについては後で説明します。したがって、SHA256 を更新するには、次のコマンドを実行する必要があります。
sudo sed -i 's|SHA256SUM_TGZ="<INSTALLER CURRENT JAVA HASH HERE>"|SHA256SUM_TGZ="<NEW JAVA HASH>"|' oracle-java8-installer.*
しかし、現在の Java ハッシュのどれを置き換えるべきかをどうやって知るのでしょうか? プロセッサのアーキテクチャを調べる必要があります。
dpkg --print-architecture
私の場合、これは を出力しますamd64
。つまり、2 番目のリンクを取得する必要があるということです。どうしてこれがわかるのでしょうか? そうですね、私はソース コード ( sudo gedit oracle-java8-installer.config
) を読んでいるので、これについては私を信頼してください。
- アーキテクチャが
i386
、 、i586
または の場合はi686
、最初のものを取得します。 - の場合は
amd64
、2 番目を取得します。 armv7l
または の場合はarmv6l
、3 番目を取得します。armv8l
、arm64
または の場合はaarch64
、4 番目を取得します。- 上記のいずれにも当てはまらない場合は、運が悪いです...
したがって、私の場合はamd64
、Java の Web サイトから取得した新しいハッシュを使用して、次を実行します。
sudo sed -i 's|SHA256SUM_TGZ="b6dd2837efaaec4109b36cfbb94a774db100029f98b0d78be68c27bec0275982"|SHA256SUM_TGZ="1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3"|' oracle-java8-installer.*
最後に、インストーラーの JDK ディレクトリ名を変更する必要があるため、次のコマンドを実行して現在のディレクトリを見つけます。
sudo grep --color -P "J_DIR=[^ ]+" oracle-java8-installer.config
私の場合は次のように印刷されました:
したがって、次のようなものを実行します。
sudo sed -i 's|J_DIR=<INSTALLER CURRENT JDK VERSION HERE>|J_DIR=<NEW JDK VERSION>|' oracle-java8-installer.*
現在のバージョンではjdk1.8.0_171
、次を実行します:
sudo sed -i 's|J_DIR=jdk1.8.0_171|J_DIR=jdk1.8.0_181|' oracle-java8-installer.*
そして...これで完了です。Java インストーラーを呼び出す準備ができました。やったー。(ふう... 最初に思ったよりも入力に時間がかかりました)。