JDK 8がインストールされていません - エラー404: 見つかりません 質問する

JDK 8がインストールされていません - エラー404: 見つかりません 質問する

昨日から、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 x64AMD64プロセッサ、最新の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、以前のバージョンで8u212Java 9をお探しですか?まあ、あなたはラッキーです。今日は、自分のニーズに合わせて Java インストーラーを修正する方法を学ぶ日です。

このチュートリアルでは、Java 8u181 が必要であり、以前に Java 8u171 がインストールされているものと想定します (これが私の持っているものなので)。

まず、JavaのJDKダウンロードページ(Java8の場合、ここに行く「ダウンロード」をクリックしてくださいタブ、そして「Java SE 8u181」リンク)。

次に、マシンに応じて必要な JDK バージョンを調べます。私の場合、マシンは Ubuntu 14.04 64 ビットで実行されているため、「Linux x64」が必要です。

JDK バージョン

必要なダウンロードへのリンクをコピーします。ライセンス契約に同意することを忘れないでください。私の場合 (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 SHA

繰り返しますが、私のマシンは「Linux x64」なので1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3、図のように が必要です。値をコピーして安全な場所に保管してください。後で必要になります。

次に、マシン上でターミナルを開き、Java インストーラー ファイルがあるフォルダーを入力します。

cd /var/lib/dpkg/info

よし、これを実行しましょう:

sudo grep --color -P "JAVA_VERSION=[a-z0-9]+" oracle-java8-installer.config

出力は次のようになります。

インストーラのJavaバージョン

これは、インストーラがインストールするように設定されている 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

インストーラーのパートナー URL

更新するには、次のようなコマンドを実行する必要があります。

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

これらはすべて異なることに注意してください。これについては後で説明します。したがって、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 番目を取得します。
  • armv8larm64または の場合は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

私の場合は次のように印刷されました:

インストーラのJDKフォルダ名

したがって、次のようなものを実行します。

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 インストーラーを呼び出す準備ができました。やったー。(ふう... 最初に思ったよりも入力に時間がかかりました)。

おすすめ記事