導入
JavaとJVM(Javaの仮想マシン)は、Tomcat、Jetty、Glassfish、Cassandra、Jenkinsなどのさまざまなソフトウェアに必要です。
このガイドでは、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
パッケージのインデックスを更新します。
- sudo apt update
次に、Javaがすでにインストールされているかどうかを確認します。
- java -version
Javaが現在インストールされていない場合、次の出力が表示されます。
OutputCommand '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をインストールするには、次のコマンドを実行します。
- sudo apt install default-jre
JREを使用すると、ほぼすべてのJavaソフトウェアを実行できます。
インストールを確認するには、次を実行します。
- java -version
次のような出力が表示されます。
Outputopenjdk 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もインストールされます。
- sudo apt install default-jdk
JDKがインストールされているかどうかは、Javaコンパイラであるjavac
のバージョンを確認することで確認できます。
- javac -version
次の出力が表示されます。
Outputjavac 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
フォルダに保存したと仮定しています:
- scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~
ファイルのアップロードが完了したら、サーバーに戻り、OracleのJavaをインストールするためのサードパーティのリポジトリを追加します。
まず、インストールするソフトウェアを検証するために使用される署名キーをインポートします:
- sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
次の出力が表示されます:
Outputgpg: 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
次に、リポジトリをパッケージソースのリストに追加します:
- 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
新しいソフトウェアをインストールできるように、パッケージリストを更新します。
- sudo apt update
インストーラーは、Oracle JDKを/var/cache/oracle-jdk11-installer-local
にダウンロードしたかどうかを確認します。このディレクトリを作成し、Oracle JDKアーカイブをそこに移動します。
- sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
- sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
最後に、パッケージをインストールします:
- sudo apt install oracle-java11-installer-local
インストーラーはまず、Oracleライセンス契約書に同意するかどうかを尋ねます。契約書に同意した後、インストーラーはJavaパッケージを抽出してインストールします。
次に、使用するJavaのバージョンを選択する方法を見ていきます。
ステップ2 — Javaの管理
1台のサーバーに複数のJavaインストールを持つことができます。 update-alternatives
コマンドを使用して、コマンドラインで使用するデフォルトのバージョンを構成できます。
- sudo update-alternatives --config java
このチュートリアルで両方のJavaバージョンをインストールした場合の出力例は次のようになります:
OutputThere 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コマンドに対しても実行できるコマンドです。
- sudo update-alternatives --config javac
このコマンドを実行できる他のコマンドには、keytool
、javadoc
、jarsigner
などがあります。
ステップ3 — JAVA_HOME
環境変数の設定
Java を使用して書かれた多くのプログラムは、Java のインストール場所を決定するために JAVA_HOME
環境変数を使用します。
この環境変数を設定するには、まず Java のインストール場所を確認します。 update-alternatives
コマンドを使用します:
- sudo update-alternatives --config java
このコマンドは、各 Java のインストールとそのインストールパスを示します:
OutputThere 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:
この場合、インストールパスは次のとおりです:
- OpenJDK 11 は
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
にあります。 - Oracle Java は
/usr/lib/jvm/java-11-oracle/jre/bin/java
にあります。
好みのインストールからパスをコピーします。 次に、nano
またはお気に入りのテキストエディタを使用して /etc/environment
を開きます:
- sudo nano /etc/environment
このファイルの最後に、以下の行を追加します。 ハイライトされたパスを自分のコピーしたパスに置き換え、パスの bin/
部分は含めないように注意してください:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
このファイルを変更すると、システム上のすべてのユーザーの JAVA_HOME
パスが設定されます。
ファイルを保存してエディタを終了します。
現在のセッションに変更を適用するために、このファイルをリロードします:
- source /etc/environment
環境変数が設定されていることを確認します:
- 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