Ubuntu:OpenJDK 8-パッケージが見つかりません


95

それで私はUbuntuをインストールしたばかりで、Linux環境で作業するのはこれが初めてです。

とにかく、Java 8 JDKをOracleから直接ダウンロードしましたが、Java 8用のOpenJDKもあることを理解しています。2つの質問があります。

  1. OracleバージョンとOpenJDKの違いは何ですか。長所短所?

  2. OpenJDK 8を取得しようとすると、取得できません。ここに表示されるターミナルコマンドとエラーメッセージを貼り付けています。繰り返しになりますが、Linuxは非常に新しく、この時点で1時間も経たないうちに私の最初のLinuxディストリビューションに参加しました。

    user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package openjdk-8-jdk

任意の助けいただければ幸いです。それまでは、Oracleパッケージを使用します。ありがとう。

編集:

だから、今私は新たな問題を抱えています。私はOpenJDK 7をインストールしました。Mavenに付属していて、2対1の契約を結んでいることに気付く前にインストールしました。現在、JDK 7、Eclipse、およびMavenがあり、それらはすべて機能していますが、8ではなくJDK 7を使用しています。

下にリンクがあるのがわかりました。朝チェックするつもりです。午前2時で、今は疲れています。この新しい問題に関するその他のアドバイスはいただければ幸いです。それ以外の場合は、午前中に必ず最初にそのリンクをチェックします。



どのバージョンのUbuntuを実行していますか?最新のいくつかのバージョンでは、インストールオプションとして利用可能になっています。

スティーブンのリンクはあなたの問題を解決します:)
Juned

ありがとう。午前2時なので就寝しますが、午前中にリンクをチェックします。質問を編集して追加の問題を追加しました。既存のリンク/回答がそれでも役立つ場合、私は今すぐ見るのに疲れすぎて申し訳ありません。午前中にチェックします。
user2223059 2015年

私はubuntu 14.10を使用しています。最新の長期リリースが何であれ。
user2223059 2015年

回答:


121

更新:以下のルート権限なしのインストール


問題を解決できる(準公式の)リポジトリがすでにある場合は、ubuntuシステムに手動でパッケージをインストールしないことをお勧めします。さらに、(非常に散発的な)互換性の問題を回避するために、Oracle JDKを開発に使用します(私は何年も前に試しましたが、今は確かに優れています)。

システムにwebupd8リポジトリを追加します。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

お好みのバージョンのjdkをインストールします(java-6からjava-9までのバージョンが利用可能):

sudo apt-get install oracle-java8-installer

複数のバージョンのjdkをインストールして、openjdkとoracleバージョンを混在させることもできます。次に、コマンドupdate-java-alternativesを使用して、インストールされているバージョンを切り替えることができます。

# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

必要条件

あなたが得る場合はadd-apt-repository: command not foundしているようにしてくださいsoftware-properties-commonインストール:

sudo apt-get install software-properties-common

古いバージョンのUbuntuを使用している場合:

sudo apt-get install python-software-properties

root権限なしのJDKインストール

ターゲットマシンの管理者権限がない場合、最も簡単な方法はsdkman、zulu認定のopenjdkのインストールに使用することです。

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

:sdkmanでは、デフォルトのオプションではありませんが、公式のOracle JDKもインストールできます。利用可能なバージョンを表示:

sdk ls java

選択したバージョンをインストールします:

sdk install java <version>

例えば:

sdk install java 9.0.1-oracle

コマンドの用語集

  • sudo <command> [command_arguments]:スーパーユーザー権限でコマンドを実行します。

  • add-apt-repository <PPA_id>:Ubuntu(すべてのDebian派生物と同じように、一般にすべてのLinuxディストリビューションと同様)には、パッケージの依存関係や更新などを処理するパッケージのメインリポジトリがあります。Ubuntuでは、通常システムで使用できないパッケージ(oracle jdkのような)または使用可能なパッケージの更新バージョン(例:LTSのLibreOffice 5はこれを通じてのみ使用可能)を含むPPA(パーソナルパッケージアーカイブ)を使用してメインリポジトリを拡張できます。PPA)。

  • apt-get [install|update|upgrade|purge|...]:システム上のすべてのリポジトリの状態を操作するために使用される「the」コマンドラインパッケージハンドラです(インストール/更新/アップグレードは、リポジトリの現在の状態の変更と見なすことができます)。

私たちの場合:コマンドsudo add-apt-repository ppa:webupd8team/javaを使用して、次のリポジトリ更新でパッケージ情報もwebupd8リポジトリから取得する必要があることをシステムに通知します。

ではsudo apt-get update、我々は実際にシステムのリポジトリを更新(私たちは前に付加して、このすべての操作は、スーパーユーザ権限が必要ですSUDOコマンドに)。

sudo apt-get install oracle-java8-installer

  • update-java-alternativesupdate-alternativesの特定のJavaバージョン):Ubuntuでは、いくつかのパッケージが同じ機能を提供します(インターネットの閲覧、メールのコンパイル、テキストファイルの編集、またはjava / javac実行可能ファイルの提供など)。システムが特定のタスクを指定してユーザーのお気に入りツールを選択できるようにするために、下のシンボリックリンクを使用するメカニズム/etc/alternatives/が使用されます。上記のようにjdkを更新して(java 7とjava 8を切り替え)、このコマンドの出力を変更する方法を確認します。

    ls -l /etc/alternatives/java*

私たちの場合sudo update-java-alternatives --set java-8-oracle/ etc / alternativesの下のシンボリックリンクを更新して、java-8-oracle実行可能ファイルをポイントします。

エクストラ:

  • man <command>:(ほとんど)すべてのシェルコマンドとそのオプションに関する非常によく書かれた詳細なヘルプを読むためにmanを使い始めます(この小さな回答で私が言及するすべてのコマンドにはmanページがあります、試してくださいman update-java-alternatives)。

  • apt-cache search <search_key>:APTキャッシュをクエリして、提供されたsearch_keyに関連するパッケージを検索します(パッケージ名またはパッケージの説明に含まれる単語のいずれかです)。

  • apt-cache show <package>:特定のパッケージのAPT情報を提供します(パッケージのバージョン、インストール済みかどうか、説明)。


問題は、「パッケージoracle-java8-installerが見つかりません」というメッセージが表示されることです。sudo apt-getコマンドを使用してopenjdk 8を取得しようとすると、同じことが起こります。
user2223059

2
特に、これは(少なくともラベルが付けられている)Javaの商用バージョンであり、オープンコミュニティバージョン(openjre)ではありません。
ThorSummoner 2016年

1
@basZero:ソフトウェアのプロパティをインストールする必要があるようです:apt-get install software-properties-common。そのため、この要件を含めるように投稿を更新します。ありがとう
Giuseppe Ricupero

1
この回答は無効です-OracleはJavaインストーラの直接ダウンロードを禁止しています。sudo apt-get install oracle-java8-installer failed
Alec Istomin

2
私はすでにこの問題を4時間解決しようとしています。この素晴らしいソリューションをありがとう!
ickyrr 2017

108

ご覧のとおり、(Ubuntu 14.04マシンに)Java 1.7のみをインストールしています。

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

Java 8をインストールするために、

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

その後、私は今Java 7と8を持っています

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

追加ボーナス(異なるバージョン間で切り替える方法)

  • ターミナルから次のコマンドを実行します。

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-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

ご覧のとおり、私はopen jdk 8を実行しています。jdk7に切り替えるに1は、Enterキーを押してください。についてjavacも同じようにしてくださいsudo update-alternatives --config javac

変更を確認するために、バージョンを確認しますjava -versionjavac -version


2
OpenJDKをインストールするためにどのリポジトリが必要かわからなかったので、とても役に立ちました。どうもありがとう。
cram2208 2016年

@ cram2208よろしくお願いします。コメントありがとうございます。
samsamara 2016年

openjdk-rはサーバーにとって安全ですか?
Wang

詳細な回答をありがとう、この解決策は私にとって完璧に機能します。
Muddasir23、19年

@ Muddasir23お役に立ててうれしいです!
samsamara

13

ランダムなPPAやフリーでないOracleバイナリではなく、公式のDebianリポジトリからOpenJDK 8を取得しています。ここに私がそれをした方法があります:

sudo apt-get install debian-keyring debian-archive-keyring

作る/etc/apt/sources.list.d/debian-jessie-backports.list

deb http://httpredir.debian.org/debian/ jessie-backports main

作る/etc/apt/preferences.d/debian-jessie-backports

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

次に、最後にインストールを実行します。

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

1
そして、最終的な最後に update-alternatives --config java ;-)
Javali

どうもありがとう!これは私のために働いた唯一の解決策です(Deb 8)

3
sudo apt-get update
sudo apt-get  install openjdk-8-jdk

これはうまくいくはずです


これが既存の回答に追加する説明を追加してください。
Gert Arnold

WindowsからWSL2を使用していて、OpenJDKをインストールする前にパッケージを更新するのを忘れて、同じエラーが発生しました。@GertArnold、ゾーイの答えはそのシナリオで私を助けました。
pcdro

0

私は同じ問題を抱えていて、このページのすべての解決策を試しましたが、どれもうまくいきませんでした。

最終的に機能したのは、universeリポジトリを私のリポジトリリストに追加することでした。これを行うには、次のコマンドを実行します

sudo add-apt-repository universe

上記のコマンドを実行した後、私は実行することができました

sudo apt install openjdk-8-jre

問題なく、パッケージがインストールされました。

これが誰かを助けることを願っています。


なぜ私がこの回答に反対票を投じたのかわかりません。不正確な点や潜在的な問題がある場合は、コメントを残して、他の人や私自身がよりよく理解できるようにしてください。
ダニエルブラック

0

JDKリポジトリを追加した後、インストールの前にまず更新を実行して、リポジトリを追加できるようにすることができます。 apt update

その後、インストールを続行します sudo apt install adoptopenjdk-8-hotspot

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.