それで私はUbuntuをインストールしたばかりです、そしてこれがLinux環境で働くのは私にとっては初めてです。
とにかく、私は直接OracleからJava 8 JDKをダウンロードしました、しかし私は同様にJava 8のためのOpenJDKがあることを理解しています。 2つ質問があります。
OracleバージョンとOpenJDKの違いは何ですか。長所短所?
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時です、そして、私は今疲れています。この新しい問題についての他のどんなアドバイスも評価されるでしょう、さもなければ私は間違いなく午前中にそのリンク最初の事をチェックアウトするでしょう。
UPDATE:以下のroot権限なしのインストール
あなたの問題を解決することができる(準公式の)リポジトリが既にある場合は、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
OpenjdkとOracleのバージョンを混在させて、複数のバージョンのjdkをインストールすることもできます。その後、pdate-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
NOTE: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ディストリビューションと同様に)はpackageのようなものを扱うパッケージのメインリポジトリを持っています依存関係と更新Ubuntuでは、通常はシステムで利用できないパッケージ(Oracle jdkのように)または利用可能なものの更新版(例:LTSのLibreOffice 5はこれを通してのみ利用可能です)を含むPPA(Personal Package Archive)を使用してメインリポジトリを拡張できます。 PPA )。
apt-get[install|update|upgrade|purge|...]
:システム上のすべてのリポジトリのstateを操作するための "コマンド"パッケージハンドラです。 (インストール/アップデート/アップグレードはリポジトリの現在の状態の変更と見なすことができます)。
私たちの場合:コマンドSudo add-apt-repository ppa:webupd8team/Java
を使うと、次回のリポジトリ更新でもwebupd8 repoからパッケージ情報を取得する必要があることをシステムに通知します。
Sudo apt-get update
を使って実際にシステムリポジトリを更新します(この操作はすべてスーパーユーザー特権を必要とするので、コマンドの前にSudoを追加します)。
Sudo apt-get install Oracle-Java8-installer
update-Java-alternatives(update-alternativesの特定のJavaバージョン):Ubuntuでは、いくつかのパッケージが同じ機能を提供します(インターネットの閲覧、メールの編集、テキストファイルの編集、またはJava/javac実行ファイルの提供など)。 /etc/alternatives/
の下の symlinks を使用するメカニズムが使用されている特定のタスクが与えられたときにシステムがユーザーのお気に入りツールを選択できるようにします。上記のように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-cachesearch <search_key>
:APTキャッシュを検索して、提供されたsearch_keyに関連するパッケージを検索します(パッケージ名またはパッケージの説明でいくつかのWord)。
apt-cacheshow <package>
:特定のパッケージのAPT情報(パッケージのバージョン、インストールされているかどうか、説明)を提供します。
ご覧のとおり、私はJava 1.7しかインストールしていません(Ubuntu 14.04マシン上)。
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
BONUS ADDED(異なるバージョンを切り替える方法)
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 -version
およびjavac -version
。
ランダムなPPAやフリーではないOracleバイナリではなく、OpenJDK 8を公式のDebianリポジトリから入手しました。これが私のやり方です。
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
Sudo apt-get update
Sudo apt-get install openjdk-8-jdk
これはうまくいくはずです