Java 21 on Devuan 5 (Debian 12): インストール (手動で)

nabbisen - Oct 15 '23 - - Dev Community

はじめに

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
Enter fullscreen mode Exit fullscreen mode

サーバーとローカルのチェックサムを比較することで、ダウンロード結果を検証できます。一例ですが、以下のコマンドで実施できます:

$ 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
Enter fullscreen mode Exit fullscreen mode

上は、サーバーのチェックサムがローカルと一致することが確認できた、ということを意味します:

$ # ダウンロードしたファイルのチェックサム
$ sha256sum openjdk-21_linux-x64_bin.tar.gz
a30c454a9bef8f46d5f1bf3122830014a8fbe7ac03b5f8729bc3add4b92a1d0a  openjdk-21_linux-x64_bin.tar.gz
Enter fullscreen mode Exit fullscreen mode

ファイル群の配置

展開します:

$ tar xzf openjdk-21_linux-x64_bin.tar.gz
Enter fullscreen mode Exit fullscreen mode

結果は以下の通りでした:

$ ls {.,jdk-21}
.:
jdk-21  openjdk-21_linux-x64_bin.tar.gz

jdk-21:
bin  conf  include  jmods  legal  lib  release
Enter fullscreen mode Exit fullscreen mode

jdk-21 ディレクトリを手に入れました。その中には bin などが含まれています 👍

環境変数の設定

PATHJAVA_HOME を設定します。

PATH の設定:

$ # bash の場合
$ export PATH=$(readlink -f ./jdk-21/bin):$PATH
$ # fish の場合
$ #set -x PATH $(readlink -f ./jdk-21/bin/):$PATH
Enter fullscreen mode Exit fullscreen mode

JAVA_HOME の設定:

$ # bash の場合
$ export JAVA_HOME=$(readlink -f .)
$ # fish の場合
$ #set -x JAVA_HOME $(readlink -f .)
Enter fullscreen mode Exit fullscreen mode

準備完了です 🙌

おわりに

これで 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)
Enter fullscreen mode Exit fullscreen mode

試しに実行してみましょうか。.java ファイルを作成しましょう:

$ nvim HelloWorld.java
Enter fullscreen mode Exit fullscreen mode

そこに以下のように記述します:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world.");
    }
}
Enter fullscreen mode Exit fullscreen mode

直接ファイルを実行する場合、以下のようにします:

$ java HelloWorld.java
Hello, world.
Enter fullscreen mode Exit fullscreen mode

うまく行きましたね。では次に、手動でコンパイルしてから実行してみましょう:

$ ls HelloWorld*
HelloWorld.java

$ javac HelloWorld.java
$ # .class ファイルが作成されます

$ ls HelloWorld*
HelloWorld.class  HelloWorld.java

$ java HelloWorld
Hello, world.
Enter fullscreen mode Exit fullscreen mode

こんにちは、最新の Devuan さんの上で動く 最新の Java さん ☺

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .