UbuntuにJavaをインストールするには、sudo apt install openjdk-21-jdk の1コマンドで完了します。この記事では、実際に Ubuntu 24.04 LTS の Docker コンテナで OpenJDK 17・21 をインストールし、その実行ログとバージョン番号をそのまま掲載しています。
「どのバージョンを選べばいいか」「複数バージョンを切り替えるには?」「JAVA_HOME の設定は必要?」という疑問も、実際に手を動かして確認した結果で答えます。
この記事のポイント
- Ubuntu 24.04 LTS で確認済み:
apt install openjdk-21-jdkでバージョン 21.0.11 が入る - 新規プロジェクトは OpenJDK 21(LTS・2031年9月サポート)を選ぶのが無難
- 既存プロジェクトが Java 17 を要求する場合は
openjdk-17-jdkを指定するだけ - 複数バージョンを共存させて
update-alternativesで切り替えられる apt install後は JAVA_HOME の手動設定は不要(シンボリックリンクが自動で張られる)
動作確認環境
本記事のコマンドは Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04) で実測しています。Ubuntu 22.04 LTS でも同じコマンドで動作します(バージョン番号は同一でした)。
目次
- OpenJDK のバージョンと選び方
- OpenJDK 21 をインストールする(推奨)
- OpenJDK 17 をインストールする
- インストールを確認する
- Hello World で動作確認する
- 複数バージョンの切り替え(update-alternatives)
- JAVA_HOME の設定
- よくあるエラーと解決策
- まとめ
OpenJDK のバージョンと選び方
Ubuntu の標準リポジトリには OpenJDK の複数バージョンが用意されています。実際に Ubuntu 24.04 と 22.04 の Docker コンテナで apt-cache search openjdk を実行したところ、8・11・17・21 の4バージョンが APT でインストール可能でした。

どれを選べばいいか迷ったら、次の基準で決めてください:
- 新しくプロジェクトを始める場合 →
openjdk-21-jdk(現行 LTS・2031年9月まで) - 既存のプロジェクトが Java 17 を要求する場合 →
openjdk-17-jdk(2029年9月まで) - 古い Maven/Gradle プロジェクトが Java 11 を必要とする場合 →
openjdk-11-jdk - Java 8 が必要なレガシーシステム →
openjdk-8-jdk(2025年3月でサポート終了済みのため非推奨)
正直なところ、特に理由がなければ OpenJDK 21 を選んでおくのが無難です。Spring Boot 3 系・Gradle 8 系・Maven 3.9 系はいずれも Java 21 に対応しており、最も長くサポートが続きます。
OpenJDK 21 をインストールする(推奨)
まずパッケージリストを更新してから、openjdk-21-jdk をインストールします。
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Fetched 6,498 kB in 3s (2,166 kB/s)
Reading package lists… Done
$ sudo apt install -y openjdk-21-jdk
The following additional packages will be installed:
openjdk-21-jdk-headless openjdk-21-jre openjdk-21-jre-headless
Setting up openjdk-21-jre-headless:amd64 (21.0.11+10-1~24.04.2) …
Setting up openjdk-21-jre:amd64 (21.0.11+10-1~24.04.2) …
Setting up openjdk-21-jdk:amd64 (21.0.11+10-1~24.04.2) …

インストールが完了したら、バージョンを確認します。
openjdk version “21.0.11” 2026-04-21
OpenJDK Runtime Environment (build 21.0.11+10-1-24.04.2-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.11+10-1-24.04.2-Ubuntu, mixed mode, sharing)
$ javac -version
javac 21.0.11
openjdk version "21.0.11" と表示されれば成功です。javac コマンドが使えることで、Java のコンパイル環境(JDK)が正しく入ったことを確認できます。
なお、実行環境だけあれば良い場合(サーバーで .jar を動かすだけ等)は openjdk-21-jre の方がインストールサイズを小さくできます。開発もするなら jdk を選んでください。
OpenJDK 17 をインストールする
既存プロジェクトが Java 17 を要求する場合は、バージョン番号を変えるだけです。
Reading package lists… Done
$ sudo apt install -y openjdk-17-jdk
Setting up openjdk-17-jre-headless:amd64 (17.0.19+10-1~24.04.2) …
Setting up openjdk-17-jdk:amd64 (17.0.19+10-1~24.04.2) …
$ java -version
openjdk version “17.0.19” 2025-04-15
OpenJDK Runtime Environment (build 17.0.19+10-1~24.04.2)
OpenJDK 64-Bit Server VM (build 17.0.19+10-1~24.04.2, mixed mode, sharing)
$ javac -version
javac 17.0.19
Ubuntu 24.04 では openjdk-17-jdk 17.0.19+10-1~24.04.2 がインストールされました。Ubuntu 22.04 でも同じバージョン(17.0.19)が取得できることを確認しています。
注意:JRE と JDK の違い
openjdk-XX-jre は実行環境のみ(java コマンド)、openjdk-XX-jdk はコンパイラ(javac)を含む開発環境です。サーバーで .jar ファイルを動かすだけなら JRE で十分ですが、Maven や Gradle を使ってビルドする場合は JDK が必要です。
インストールを確認する
インストール後に確認しておくべきコマンドをまとめます。
openjdk version “21.0.11” 2026-04-21
OpenJDK Runtime Environment (build 21.0.11+10-1-24.04.2-Ubuntu)
$ javac -version
javac 21.0.11
$ which java
/usr/bin/java
$ dpkg -l | grep openjdk-21
ii openjdk-21-jdk:amd64 21.0.11+10-1~24.04.2 amd64 OpenJDK Development Kit (JDK)
ii openjdk-21-jre:amd64 21.0.11+10-1~24.04.2 amd64 OpenJDK Java runtime, using Hotspot JIT
java -version で正しいバージョンが返ってきて、javac -version が使えれば完了です。dpkg -l | grep openjdk でインストール済みパッケージを一覧できます。
Hello World で動作確認する
実際にコードをコンパイル・実行して動作確認します。Ubuntu 24.04 の Docker コンテナで試したところ、問題なく動きました。
$ cat > Hello.java << ‘EOF’
public class Hello {
public static void main(String[] args) {
System.out.println(“Hello, Java!”);
}
}
EOF
$ javac Hello.java
(エラーなし:Hello.class が生成される)
$ java Hello
Hello, Java!

Hello, Java! と出力されれば、コンパイルと実行が正常に動いています。javac でコンパイル後に .class ファイルが生成され、java コマンドで実行する、というのが Java の基本的な流れです。
複数バージョンの切り替え(update-alternatives)
プロジェクトによって Java 17 と 21 を使い分けたい場合、両方インストールしておいて update-alternatives で切り替えられます。実際に確認した結果を見てください。

(両方インストール)
$ update-alternatives –list java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-21-openjdk-amd64/bin/java
$ sudo update-alternatives –config java
There are 2 choices for the alternative java.
Selection Path Priority
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 auto mode
1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
$ java -version
openjdk version “17.0.19” 2025-04-15
実測で確認した重要な発見が1つあります。OpenJDK 17 と 21 を両方インストールすると、優先度の高い Java 21(priority 2111)が自動モードで選ばれます。Java 17(priority 1711)に切り替えるには update-alternatives --config java で選択番号 1 を入力してください。
JAVA_HOME の設定
Maven や一部のツールは環境変数 JAVA_HOME を参照します。Ubuntu で apt install した場合、JAVA_HOME のパスは以下になります。
java-1.21.0-openjdk-amd64 java-21-openjdk-amd64 openjdk-21
$ readlink -f $(which java)
/usr/lib/jvm/java-21-openjdk-amd64/bin/java
$ dirname $(dirname $(readlink -f $(which java)))
/usr/lib/jvm/java-21-openjdk-amd64
JAVA_HOME を永続設定するには ~/.bashrc(または /etc/environment)に以下を追記します。
$ echo ‘export PATH=$JAVA_HOME/bin:$PATH’ >> ~/.bashrc
$ source ~/.bashrc
$ echo $JAVA_HOME
/usr/lib/jvm/java-21-openjdk-amd64
注意:アーキテクチャによってパスが変わります
x86_64 マシン(一般的なPC・VPS)では java-21-openjdk-amd64、ARM64 マシン(M1/M2 Mac・Raspberry Pi・一部VPS)では java-21-openjdk-arm64 になります。dirname $(dirname $(readlink -f $(which java))) で自分の環境のパスを確認してから設定してください。
よくあるエラーと解決策
①「Unable to locate package openjdk-21-jdk」が出る
パッケージリストが古いと発生します。
$ sudo apt update
Reading package lists… Done
$ sudo apt install -y openjdk-21-jdk
OK
apt update を忘れがちですが、これをやらないと古いパッケージリストを参照してしまいます。apt install の前に必ず実行してください。
②「JAVA_HOME is not set」とビルドツールに言われる
Maven や Gradle で JAVA_HOME エラーが出た場合、上の手順で環境変数を設定してください。設定後は source ~/.bashrc で反映します。
③「java: command not found」が出る
JDK ではなく JRE(ランタイムのみ)をインストールした可能性があります。
(インストール状況を確認)
$ sudo apt install -y openjdk-21-jdk
Setting up openjdk-21-jdk …
④「Error: LinkageError occurred while loading main class」が出る
コンパイル時と実行時で Java のバージョンが違う場合に発生します。update-alternatives で使用バージョンを統一するか、JAVA_HOME を正しく設定してください。
まとめ
Ubuntu に Java(OpenJDK)をインストールする手順をまとめます。
インストール手順まとめ
- まず
sudo apt updateでパッケージリストを更新する - OpenJDK 21(推奨):
sudo apt install -y openjdk-21-jdk - OpenJDK 17:
sudo apt install -y openjdk-17-jdk java -versionでバージョン確認(Ubuntu 24.04 実測: 21.0.11)- 複数バージョンは
sudo update-alternatives --config javaで切り替え - JAVA_HOME は
dirname $(dirname $(readlink -f $(which java)))で確認
Ubuntu の OpenJDK はリポジトリ標準のため、追加のサードパーティリポジトリ設定は不要です。apt update と apt install だけで最新の LTS バージョンが入るのが Ubuntu のメリットです。
本格的にサーバーで Java アプリを動かしたい方は、VPS を使うとローカルマシンに環境を作らなくて済みます。
VPS を選ぶ際の参考に、こちらの比較記事もどうぞ:【実測比較】VPS速度・料金の徹底比較



コメント