はじめに
Java 汎用プログラミング言語に関して、OpenJDK の新しい LTS (Long Term Support) バージョンである 21 が先月の 2023 年 9 月 17 日にリリースされました 🎉
Debian 12 - bookworm の リポジトリ 上では、現行バージョンはまだ 17 すなわち一つ前の LTS です。
本記事で、21 を手動でインストールする方法を紹介します。ターゲット環境は Debian 12 をもとにしてつくられている Devuan 5 - Daedalus という Linux ディストロです。
別の方法もあります。JDK 21 の "x64 Debian Package" が Oracle から配布されています。それを使うこともできます。
さらに、最新バージョンを試すだけの目的であれば、Oracle から Java 21 の PlayGround 環境も提供されています。こちらはオンラインで利用でき、ローカル環境へのインストールは不要です。
それから、最もかんたんな方法の一つも挙げておきます。"OpenJDK" Docker 公式イメージ を使うことです。"21-bookworm" タグ が公開されています。
環境
- OS: Devuan 5 Daedalus
- ベースは Debian 12 bookworm
- App Engine: OpenJDK 21
チュートリアル
OpenJDK パッケージの取得
公式 Web サイトが出発点になります: https://jdk.java.net/21/
ここでパッケージを取得できます。私は以下のコマンドで取得しました:
$ curl -LO https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz
サーバーとローカルのチェックサムを比較することで、ダウンロード結果を検証できます。一例ですが、以下のコマンドで実施できます:
$ echo "$(curl -s https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz.sha256) openjdk-21_linux-x64_bin.tar.gz" | \
sha256sum -c
openjdk-21_linux-x64_bin.tar.gz: OK
上は、サーバーのチェックサムがローカルと一致することが確認できた、ということを意味します:
$ # ダウンロードしたファイルのチェックサム
$ sha256sum openjdk-21_linux-x64_bin.tar.gz
a30c454a9bef8f46d5f1bf3122830014a8fbe7ac03b5f8729bc3add4b92a1d0a openjdk-21_linux-x64_bin.tar.gz
ファイル群の配置
展開します:
$ tar xzf openjdk-21_linux-x64_bin.tar.gz
結果は以下の通りでした:
$ ls {.,jdk-21}
.:
jdk-21 openjdk-21_linux-x64_bin.tar.gz
jdk-21:
bin conf include jmods legal lib release
jdk-21
ディレクトリを手に入れました。その中には bin
などが含まれています 👍
環境変数の設定
PATH
を JAVA_HOME
を設定します。
PATH
の設定:
$ # bash の場合
$ export PATH=$(readlink -f ./jdk-21/bin):$PATH
$ # fish の場合
$ #set -x PATH $(readlink -f ./jdk-21/bin/):$PATH
JAVA_HOME
の設定:
$ # bash の場合
$ export JAVA_HOME=$(readlink -f .)
$ # fish の場合
$ #set -x JAVA_HOME $(readlink -f .)
準備完了です 🙌
おわりに
これで Java 21 環境を構築できました:
$ java --version
openjdk 21 2023-09-19
OpenJDK Runtime Environment (build 21+35-2513)
OpenJDK 64-Bit Server VM (build 21+35-2513, mixed mode, sharing)
試しに実行してみましょうか。.java
ファイルを作成しましょう:
$ nvim HelloWorld.java
そこに以下のように記述します:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world.");
}
}
直接ファイルを実行する場合、以下のようにします:
$ java HelloWorld.java
Hello, world.
うまく行きましたね。では次に、手動でコンパイルしてから実行してみましょう:
$ ls HelloWorld*
HelloWorld.java
$ javac HelloWorld.java
$ # .class ファイルが作成されます
$ ls HelloWorld*
HelloWorld.class HelloWorld.java
$ java HelloWorld
Hello, world.
こんにちは、最新の Devuan さんの上で動く 最新の Java さん ☺