CentOS、RockyLinux、RHEL、およびFedoraにJavaをインストールする方法
序章
このチュートリアルでは、RPMベースのLinuxディストリビューションの現在のバージョン(Red Hat Enterprise Linux、CentOS、Fedora、およびRocky Linux)にJavaをインストールする方法を示します。 Javaは、多くのサーバー側アプリケーションを実行できるようにする人気のあるプログラミング言語およびソフトウェアプラットフォームです。
このチュートリアルでは、Javaの最新のデフォルトバージョンのインストール、インストールする古いバージョンの選択、および必要に応じて環境内の複数のバージョン間の切り替えについて説明します。
前提条件
このガイドを開始する前に、サーバーにsudo
権限が設定された通常の非rootユーザーが必要です。これは、サーバーにログインするユーザーです。 Rocky Linux 8 の初期サーバーセットアップガイドの手順に従って、通常のユーザーアカウントを構成する方法を学ぶことができます。
ブラウザで実行されている端末を使用してJavaをインストールする実験を行う場合は、次のLaunch an Interactive Terminal!
ボタンをクリックしてください。 このチュートリアルのコマンドは、RockyLinux8環境で実行できます。
インタラクティブターミナルを起動します!
ステップ1-OpenJDKのインストール
Java Platformには、Standard Edition(SE)、Enterprise Edition(EE)、およびMicro Edition(ME)の3つの異なるエディションがあります。 このチュートリアルは、Java SE(Java Platform、Standard Edition)に焦点を当てています。 ほとんどすべてのオープンソースJavaソフトウェアは、JavaSEで実行するように設計されています。
インストールできるJavaSEパッケージには、Java Runtime Environment(JRE)とJava Development Kit(JDK)の2つがあります。 JREは、Java仮想マシン(JVM)の実装であり、コンパイルされたJavaアプリケーションおよびアプレットを実行できます。 JDKには、JREと、Javaアプリケーションおよびアプレットの作成、開発、およびコンパイルに必要なその他のソフトウェアが含まれています。
Javaには、OpenJDKとOracleJavaの2つの異なる実装もあります。 どちらの実装もほぼ同じコードに基づいていますが、Javaのリファレンス実装であるOpenJDKは完全にオープンソースであり、OracleJavaには独自のコードが含まれています。 ほとんどのJavaアプリケーションはどちらでも正常に動作しますが、ソフトウェアが要求する実装を使用する必要があります。
さまざまなバージョンとリリースのJavaを単一のシステムにインストールできますが、ほとんどの場合、必要なインストールは1つだけです。 そのことを念頭に置いて、アプリケーションを実行または開発するために必要なバージョンのJavaのみをインストールするようにしてください。
このセクションでは、yum
パッケージマネージャーを使用してビルド済みのOpenJDKJREおよびJDKパッケージをインストールする方法を説明します。 yum
は、RPMパッケージを使用するディストリビューションのデフォルトのパッケージマネージャーです。
yumを使用してOpenJDKをインストールするには、sudo yum install java
を実行できます。
sudo yum install java
デフォルトでは、バージョンを指定せずにjava
をインストールしようとすると、OpenJDKJREの最も一般的な安定バージョンに解決されます。 この出力からわかるように、この記事の執筆時点では、それはjava-1.8.0-openjdk
です。
OutputLast metadata expiration check: 0:02:38 ago on Tue 22 Feb 2022 04:57:59 PM UTC. Dependencies resolved. ======================================================================================== Package Arch Version Repo Size ======================================================================================== Installing: java-1.8.0-openjdk x86_64 1:1.8.0.322.b06-2.el8_5 appstream 341 k Installing dependencies: alsa-lib x86_64 1.2.5-4.el8 appstream 488 k atk x86_64 2.28.1-1.el8 appstream 270 k avahi-libs x86_64 0.7-20.el8 baseos 61 k copy-jdk-configs noarch 4.0-2.el8 appstream 29 k cups-libs x86_64 1:2.2.6-40.el8 baseos 432 k fribidi x86_64 1.0.4-8.el8 appstream 88 k …
Javaとともに複数の依存関係も提供されます。 確認プロンプトでy
と入力し、Enterキーを押してインストールを続行します。 インストール元のリポジトリの署名キーを受け入れるように求められる場合もあります。
OutputImporting GPG key 0x6D745A60: Userid : "Release Engineering <infrastructure@rockylinux.org>" Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial Is this ok [y/N]:
y
と入力し、Enterキーをもう一度押します。
これで、Javaが正常にインストールされているはずです。 これを確認するために、java -version
を実行して、ご使用の環境で現在使用可能なJavaのバージョンを確認できます。
java -version
注:ほとんどの場合、コマンドライン引数の前には、1文字の引数の場合は1つのダッシュ、フルワードの引数の場合は2つのダッシュが付きます。 Javaは、すべての引数に1つのダッシュを使用するという別の規則に従います。この場合、-version
です。
Outputopenjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
Javaの命名規則とLinuxパッケージの命名規則の間の相互作用は、多少混乱する可能性があります。 このチュートリアルの前半で、開発用の完全なJDK環境とJavaアプリケーションを実行するためのJRE環境の違いを明確にしました。 OpenJDKはJavaのオープンソースディストリビューションの名前ですが、実際にインストールしたのはOpenJDKJREだけです。 完全なOpenJDKJDK をインストールするには、名前に-devel
が追加された対応するパッケージをインストールする必要があります。 これは、他のプログラミング環境の開発パッケージの一般的な規則であり、Javaもこれに従いますが、ここでは用語が厄介に重複しています。
以前と同様に、java-devel
をインストールしてデフォルトバージョンを取得するか、java-1.8.0-openjdk-devel
を指定できます。
sudo yum install java-devel
OutputDigitalOcean Droplet Agent 63 kB/s | 3.3 kB 00:00 Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: java-1.8.0-openjdk-devel x86_64 1:1.8.0.322.b06-2.el8_5 appstream 9.8 M Transaction Summary ======================================================================================== Install 1 Package Total download size: 9.8 M Installed size: 41 M Is this ok [y/N]:
このパッケージをインストールすると、特定のバージョンの非互換性がないJavaソフトウェアをコンパイルして実行できる完全なOpenJDK環境ができあがります。 次のセクションでは、他のバージョンのJavaをインストールして管理します。
ステップ2–他のOpenJDKリリースのインストール
最近、OpenJDKは、Oracle Javaリリースとより密接に追跡するために、バージョン番号付けスキームを変更しました。 新しいバージョンのOpenJDKをインストールするには、1.8.0
と同様に、パッケージ名にバージョン番号を指定できます。 たとえば、OpenJDK 17をインストールするには、次のことができますyum install java-17-openjdk
。
sudo yum install java-17-openjdk
OutputLast metadata expiration check: 0:03:36 ago on Tue 22 Feb 2022 05:42:44 PM UTC. Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: java-17-openjdk x86_64 1:17.0.2.0.8-4.el8_5 appstream 244 k Installing dependencies: adwaita-cursor-theme noarch 3.28.0-2.el8 appstream 646 k adwaita-icon-theme noarch 3.28.0-2.el8 appstream 11 M at-spi2-atk x86_64 2.26.2-1.el8 appstream 88 k at-spi2-core x86_64 2.28.0-1.el8 appstream 168 k colord-libs x86_64 1.4.2-1.el8 appstream 234 k java-17-openjdk-headless x86_64 1:17.0.2.0.8-4.el8_5 appstream 41 M lcms2 x86_64 2.9-2.el8 appstream 163 k …
以前と同様に、パッケージ名に-devel
を追加することで、完全なJDK環境をインストールできます。 ただし、この後、java
プログラムを実行すると、デフォルトで以前にインストールしたOpenJDK 1.8.0バージョンが引き続き使用されます。これは、java -version
を再度実行することで確認できます。
java -version
Outputopenjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
次のステップでは、インストールされているバージョンのJavaを管理します。
ステップ3–デフォルトのJavaバージョンを設定する
複数のバージョンのJavaをインストールした場合は、1つをデフォルトとして設定することをお勧めします(つまり、 ユーザーがjava
コマンドを実行したときに実行されるもの)。 さらに、一部のアプリケーションでは、使用するJavaのインストールを見つけるために特定の環境変数を設定する必要があります。
シンボリックリンクを介してデフォルトコマンドを管理するalternatives
コマンドを使用して、デフォルトのJavaバージョンを選択できます。 alternatives
で管理できるJavaの使用可能なバージョンを一覧表示するには、alternatives –config java
を使用します。
sudo alternatives --config java
出力には、インストールしたJavaの両方のバージョンがリストされているはずです。
outputThere are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java) 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java) Enter to keep the current selection[+], or type selection number:
選択番号を入力して、デフォルトで使用するjava
実行可能ファイルを選択します。 java
コマンドが正しいライブラリのセットを指すように、システム上の必要なシンボリックリンクを再配置します。 必要に応じてこのコマンドを再実行すると、java -version
の出力がそれに応じて変更されます。
java -version
Outputopenjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
多くのJavaアプリケーションは、JAVA_HOME
またはJRE_HOME
環境変数を使用して、使用するjava
実行可能ファイルを決定します。
たとえば、Javaを(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin
にインストールした場合(つまり、 java
実行可能ファイルは<^>(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java
)にあり、JAVA_HOME
環境変数をbashシェルまたはスクリプトで次のように設定できます。
export JAVA_HOME=(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre
注: JAVA_HOME
環境変数では、/jre
ディレクトリで終わるJavaインストールへのパスを設定することをお勧めします。 この規則は変数ごとに変わる可能性があるため、変更を行うときは例を注意深く確認することをお勧めします。
システム上のすべてのユーザーにデフォルトでJAVA_HOME
を設定する場合は、前の行を/etc/environment
ファイルに追加します。 次のコマンドを実行して、/etc/environment
ファイルを直接編集する必要をなくすために、echo
および>>
シェルリダイレクトを使用してファイルに追加できます。
sudo sh -c "echo export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre >> /etc/environment"
次のステップでは、OpenJDKバージョンと一緒にOracle独自のJavaをインストールします。
ステップ4–OracleJavaのインストール
ガイドのこのセクションでは、この記事の執筆時点でこれらのパッケージの最新リリースであるOracle Java JREおよびJDK(64ビット)をインストールする方法を示します。
注:このページの対話型端末を使用している場合、OracleJavaをダウンロードして環境にインストールすることはできません。
このセクションでは、wget
コマンドを使用してOracleJavaソフトウェアパッケージをダウンロードします。 wget
は、Linuxディストリビューションにデフォルトで含まれていない可能性があるため、以下を実行してインストールする必要があります。
sudo yum install wget
Oracle Javaをインストールする前に、含まれている手順の1つであるJavaSEのOracleBinary CodeLicenseAgreementに同意する必要があります。
注: Oracle Javaをインストールするには、 Oracle Javaダウンロードページに移動し、ライセンス契約に同意して、適切なLinuxx86.rpm
パッケージ。 wget
コマンドの強調表示された部分の代わりに、コピーしたダウンロードリンクを置き換えます。
ホームディレクトリに移動し、次のコマンドを使用してOracleJavaRPMをダウンロードします。
cd ~ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm"
次に、yum localinstall
を使用してRPMをインストールします(別のリリースをダウンロードした場合は、ここでファイル名に置き換えてください)。
sudo yum localinstall jdk-17_linux-x64_bin.rpm
確認プロンプトでy
と入力し、Enterキーを押してインストールを続行します。
以前にダウンロードしたアーカイブファイルを削除できます。
rm ~/jdk-17_linux-x64_bin.rpm
これで、alternatives
コマンドを再実行でき、OracleJavaを使用するための3番目のオプションが表示されます。
sudo alternatives --config java
outputThere are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java) + 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java) * 3 /usr/java/jdk-17.0.2/bin/java Enter to keep the current selection[+], or type selection number:
ユースケースに応じて、利用可能なバージョンのJavaをインストールして実行するには、このチュートリアルの手順で十分です。
結論
このチュートリアルでは、yum
パッケージマネージャー、alternatives
コマンド、および環境変数を使用して、Javaの複数のバージョンをインストールおよび管理しました。 これらはすべてLinux環境管理の基本的な側面であり、Javaは多くの異なるバージョンがあるため、それらを操作するための特に良い例を提供します。
次に、他のコンテキストでJavaを使用する方法を学びたいと思うかもしれません。