Ubuntu 22.04 での Apt を使用した Java のインストール方法

導入

JavaとJVM(Javaの仮想マシン)は、TomcatJettyGlassfishCassandraJenkinsなどのさまざまなソフトウェアに必要です。

このガイドでは、aptを使用してさまざまなバージョンのJavaランタイム環境(JRE)とJava開発キット(JDK)をインストールします。OpenJDKとOracleの公式JDKをインストールします。その後、プロジェクトで使用するバージョンを選択します。完了すると、JDKを使用してソフトウェアを開発したり、Javaランタイムを使用してソフトウェアを実行したりできるようになります。

DigitalOcean App Platformを使用してGitHubからフロントエンドアプリケーションをデプロイします。DigitalOceanがアプリのスケーリングに集中します。

前提条件

このチュートリアルに従うためには、以下が必要です:

  • Ubuntu 22.04のサーバーは、Ubuntu 22.04初期サーバーセットアップガイドチュートリアルに従ってセットアップされ、Sudoを使用した非rootユーザーとファイアウォールが含まれています。

ステップ1 — Javaのインストール

Javaのインストールには、2つの主要なコンポーネントがあります。JDKには、コンパイラやデバッガなど、Javaで開発するための必須ソフトウェアツールが含まれています。JREは、実際にJavaプログラムを実行するために使用されます。さらに、Javaのインストールオプションには、2つの主要な選択肢があります。OpenJDKはJavaのオープンソース実装であり、Ubuntuにパッケージ化されています。Oracle JDKはJavaの元のバージョンであり、Javaの開発元であるOracleによって完全にメンテナンスされています。

これらのバージョンは、いずれもOracleによって公式に認識されています。両方ともOracleによって開発されていますが、OpenJDKはオープンソースの性質からコミュニティの貢献が加わっています。ただし、Java 11以降、これらの2つのオプションは機能的に同等であるとされています(Oracleの詳細によると)。インストールするものを選択する際には、状況に適したライセンスを選択することが重要です。また、OpenJDKはJREを別個にインストールするオプションがありますが、OracleJDKはJREがパッケージ化されています。

オプション1 — デフォルトのJRE/JDKのインストール

Javaをインストールする方法の1つは、Ubuntuにパッケージ化されたバージョンを使用することです。デフォルトでは、Ubuntu 22.04にはOpenJDK 11が含まれており、これはJREおよびJDKのオープンソースのバリアントです。

JavaのOpenJDKバージョンをインストールするには、まずaptパッケージのインデックスを更新します。

  1. sudo apt update

次に、Javaがすでにインストールされているかどうかを確認します。

  1. java -version

Javaが現在インストールされていない場合、次の出力が表示されます。

Output
Command 'java' not found, but can be installed with: sudo apt install default-jre # version 2:1.11-72build1, or sudo apt install openjdk-11-jre-headless # version 11.0.14+9-0ubuntu2 sudo apt install openjdk-17-jre-headless # version 17.0.2+8-1 sudo apt install openjdk-18-jre-headless # version 18~36ea-1 sudo apt install openjdk-8-jre-headless # version 8u312-b07-0ubuntu1

OpenJDK 11からJREをインストールするには、次のコマンドを実行します。

  1. sudo apt install default-jre

JREを使用すると、ほぼすべてのJavaソフトウェアを実行できます。

インストールを確認するには、次を実行します。

  1. java -version

次のような出力が表示されます。

Output
openjdk version "11.0.14" 2022-01-18 OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2) OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2, mixed mode, sharing)

特定のJavaベースのソフトウェアをコンパイルおよび実行するために、JREに加えてJDKが必要な場合があります。JDKをインストールするには、次のコマンドを実行します。これにより、JREもインストールされます。

  1. sudo apt install default-jdk

JDKがインストールされているかどうかは、Javaコンパイラであるjavacのバージョンを確認することで確認できます。

  1. javac -version

次の出力が表示されます。

Output
javac 11.0.14

次に、Oracleの公式JDKとJREのインストール方法を学びます。

オプション2 — Oracle JDK 11のインストール

JavaのOracleによるライセンス契約では、パッケージマネージャを通じた自動インストールは許可されていません。Oracleが配布する公式バージョンであるOracle JDKをインストールするには、Oracleアカウントを作成し、手動でJDKをダウンロードして使用したいバージョンの新しいパッケージリポジトリを追加する必要があります。その後、サードパーティのインストールスクリプトの支援を受けてaptを使用してインストールできます。Oracle JDKにはJREが含まれているため、それを別途インストールする必要はありません。

ダウンロードするOracle JDKのバージョンは、インストーラースクリプトのバージョンと一致する必要があります。必要なバージョンを確認するには、oracle-java11-installerページを訪れてください。

Jammyのパッケージを探し、以下の図に示すように選択してください。

この図では、スクリプトのバージョンが11.0.13です。この場合、Oracle JDK 11.0.13が必要です。ソフトウェアをインストールする時期によって、バージョン番号が異なる場合があります。

このページから何もダウンロードする必要はありません。まもなくaptを介してインストールスクリプトをダウンロードします。

次に、アーカイブのダウンロードを訪れ、必要なバージョンに一致するものを見つけます。

このリストから、Linux x64の圧縮アーカイブ.tar.gzパッケージを選択します:

Oracleのライセンス契約を受け入れるかどうかを確認する画面が表示されます。ライセンス契約を受け入れるためのチェックボックスを選択し、ダウンロードボタンを押します。ダウンロードが開始されます。ダウンロードが開始される前に、Oracleアカウントにもう一度ログインする必要があるかもしれません。

ファイルのダウンロードが完了したら、サーバーに転送する必要があります。ローカルマシンでファイルをサーバーにアップロードします。macOS、Linux、またはWindowsの場合は、Windows Subsystem for Linuxを使用して、ファイルをsammyユーザーのホームディレクトリに転送するためにscpコマンドを使用します。次のコマンドは、Oracle JDKファイルをローカルマシンのDownloadsフォルダに保存したと仮定しています:

  1. scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~

ファイルのアップロードが完了したら、サーバーに戻り、OracleのJavaをインストールするためのサードパーティのリポジトリを追加します。

まず、インストールするソフトウェアを検証するために使用される署名キーをインポートします:

  1. sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

次の出力が表示されます:

Output
gpg: keybox '/usr/share/keyrings/oracle-jdk11-installer.gpg' created gpg: /tmp/trustdb.gpg: trustdb created gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported gpg: Total number processed: 1 gpg: imported: 1

次に、リポジトリをパッケージソースのリストに追加します:

  1. echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-jdk11-installer.gpg] https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/oracle-jdk11-installer.list > /dev/null

新しいソフトウェアをインストールできるように、パッケージリストを更新します。

  1. sudo apt update

インストーラーは、Oracle JDKを/var/cache/oracle-jdk11-installer-localにダウンロードしたかどうかを確認します。このディレクトリを作成し、Oracle JDKアーカイブをそこに移動します。

  1. sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
  2. sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

最後に、パッケージをインストールします:

  1. sudo apt install oracle-java11-installer-local

インストーラーはまず、Oracleライセンス契約書に同意するかどうかを尋ねます。契約書に同意した後、インストーラーはJavaパッケージを抽出してインストールします。

次に、使用するJavaのバージョンを選択する方法を見ていきます。

ステップ2 — Javaの管理

1台のサーバーに複数のJavaインストールを持つことができます。 update-alternativesコマンドを使用して、コマンドラインで使用するデフォルトのバージョンを構成できます。

  1. sudo update-alternatives --config java

このチュートリアルで両方のJavaバージョンをインストールした場合の出力例は次のようになります:

Output
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode * 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode Press <enter> to keep the current choice[*], or type selection number:

使用するJavaバージョンに関連付けられている番号を選択してデフォルトとして使用するか、現在の設定をそのままにするにはENTERを押します。

これは、コンパイラ(javac)などの他のJavaコマンドに対しても実行できるコマンドです。

  1. sudo update-alternatives --config javac

このコマンドを実行できる他のコマンドには、keytooljavadocjarsignerなどがあります。

ステップ3 — JAVA_HOME 環境変数の設定

Java を使用して書かれた多くのプログラムは、Java のインストール場所を決定するために JAVA_HOME 環境変数を使用します。

この環境変数を設定するには、まず Java のインストール場所を確認します。 update-alternatives コマンドを使用します:

  1. sudo update-alternatives --config java

このコマンドは、各 Java のインストールとそのインストールパスを示します:

Output
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode * 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode Press <enter> to keep the current choice[*], or type selection number:

この場合、インストールパスは次のとおりです:

  1. OpenJDK 11 は /usr/lib/jvm/java-11-openjdk-amd64/bin/java にあります。
  2. Oracle Java は /usr/lib/jvm/java-11-oracle/jre/bin/java にあります。

好みのインストールからパスをコピーします。 次に、nano またはお気に入りのテキストエディタを使用して /etc/environment を開きます:

  1. sudo nano /etc/environment

このファイルの最後に、以下の行を追加します。 ハイライトされたパスを自分のコピーしたパスに置き換え、パスの bin/ 部分は含めないように注意してください:

/etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

このファイルを変更すると、システム上のすべてのユーザーの JAVA_HOME パスが設定されます。

ファイルを保存してエディタを終了します。

現在のセッションに変更を適用するために、このファイルをリロードします:

  1. source /etc/environment

環境変数が設定されていることを確認します:

  1. echo $JAVA_HOME

設定したパスが表示されます:

Output
/usr/lib/jvm/java-11-openjdk-amd64

他のユーザーは、この設定を適用するためにsource /etc/environmentコマンドを実行するか、ログアウトして再ログインする必要があります。

結論

このチュートリアルでは、複数のバージョンのJavaをインストールし、それらを管理する方法を学びました。これで、Tomcat、Jetty、Glassfish、Cassandra、またはJenkinsなどのJavaで動作するソフトウェアをインストールできます。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-22-04