IBM Semeru Runtimes（Java）について調べてみる＆Rocky Linux 9にインストールする

# What's？

IBMがリリースされているJavaランタイムについて、少し見ておきたいなと思いまして。

せっかくなのでRocky Linux ９にもインストールしてみます。

# IBMのJavaランタイム

IBMのJavaに関するページはこちら。

https://www.ibm.com/support/pages/java-sdk

ダウンロードページに行くと、「IBM Semeru Runtime Certified Edition」と「Java SDK 8」の2つがあることがわかります。

https://www.ibm.com/support/pages/java-sdk-downloads

[IBM Semeru Runtimes Downloads（Certified Edition）](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/?license=IBM)

[Java SDK downloads, version 8.0](https://www.ibm.com/support/pages/java-sdk-downloads-version-80)

新しいバージョンのJavaを使用する場合は、IBM Semeru Runtimesを使うようです。

ドキュメントページはこちら。

https://www.ibm.com/support/pages/java-sdk-documentation

# IBM Semeru Runtimes

IBM Semeru Runtimesのページはこちら。

https://developer.ibm.com/languages/java/semeru-runtimes/

IBM Semeru Runtimesというのは、OpenJDKのクラスライブラリとEclipse OpenJ9のJavaVMから成るJavaランタイムのようです。

https://www.infoq.com/jp/news/2021/11/ibm-introduces-semeru-openj9/

Eclipse OpenJ9のページはこちら。

[OpenJ9](https://www.eclipse.org/openj9/)

これはもともと、AdoptOpenJDKのOpenJ9 JavaVMを使ったものとして配布されていたものようです。

https://adoptopenjdk.net/releases.html

AdoptOpenJDKがAdoptiumに移行したことでOpenJ9のビルドを配布できなくなり、IBMが提供することになったのがIBM Semeru Runtimesということらしいです。

> The transition to Adoptium means we have unfortunately not been able to continue to distribute builds of Eclipse OpenJ9. IBM has now taken them over and they are now available as "IBM Semeru". There is no need to be concerned about the change - it is still free.

[Where are the OpenJ9 builds?](https://adoptium.net/docs/faq/#_where_are_the_openj9_builds)

https://developer.ibm.com/blogs/introducing-the-ibm-semeru-runtimes/

IBM Semeru Runtimesには2つのエディションがあります。

- IBM Semeru Runtime Open Edition
  - オープンソースライセンス（[GPLv2+classpath exception](https://openjdk.org/legal/gplv2+ce.html)）
  - [Eclipse AQAvit](https://projects.eclipse.org/projects/adoptium.aqavit)テストに合格
  - Java 8以降で提供
  - Linux、Windows、macOS、AIXに対応
  - OSの種類ごとにtar.gz、rpm、zip、Windowsインストーラー、pkgのいずれかで提供
- IBM Semeru Runtime Certified Edition
  - [IBMライセンス](https://www14.software.ibm.com/cgi-bin/weblap/lap.pl?la_formnum=&li_formnum=L-VUGR-8QMH3W)
  - IBM製品にバンドルされている場合は、追加条件があることも
  - [Eclipse AQAvit](https://projects.eclipse.org/projects/adoptium.aqavit)テストに合格
  - TCKに合格
  - Java 11以降で提供
  - Linux、AIX、z/OSに対応
  - OSの種類ごとにtar.gz、rpmで提供

両方とも無償利用が可能で、主な違いはライセンスとTCKに合格していることです。  
TCKを通す関係上、Open Editionの方がリリースが早くなることもあるようです

また対象とするOSにも差がありますね。WindowsやmacOSはOpen Editionのみで提供されており、z/OSはCertified Editionのみのようです。

詳しくはこちらを見るとよいでしょう。

https://www.ibm.com/support/pages/ibm-semeru-java-certified-edition-versus-open-edition

ダウンロードページを見ると、Open EditionはJava 8以降、Certified EditionはJava 11以降が提供されています。

https://developer.ibm.com/languages/java/semeru-runtimes/downloads/

商用サポートはどちらのエディションでも受けられるようですね。

https://www.ibm.com/products/runtimes-for-business

# Rocky Linux 9にインストールしてみる

最後に、Rocky Linux 9にrpmでインストールしてみましょう。

インストールするバージョンはJava 21、対象はJDKとします。

今回の環境はこちらです。

```shell
$ cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)


$ uname -srvmpio
Linux 5.14.0-503.21.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 8 17:35:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
```

## IBM Semeru Runtime Open Edition

まずはIBM Semeru Runtime Open Editionから。ダウンロードはこちらで。

[IBM Semeru Runtimes Downloads / IBM Semeru Runtime Open Edition](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/?license=GPL)

rpmをdnfでインストール。

```shell
$ sudo dnf install https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-open-21-jdk-21.0.5.11_0.48.0-1.x86_64.rpm
```

バージョンの確認。

```shell
$ javac --version
javac 21.0.5


$ java --version
openjdk 21.0.5 2024-10-15 LTS
IBM Semeru Runtime Open Edition 21.0.5.11 (build 21.0.5+11-LTS)
Eclipse OpenJ9 VM 21.0.5.11 (build openj9-0.48.0, JRE 21 Linux amd64-64-Bit Compressed References 20241015_307 (JIT enabled, AOT enabled)
OpenJ9   - 1d5831436e
OMR      - d10a4d553
JCL      - b1b311c53fe based on jdk-21.0.5+11)
```

インストール先は`/usr/lib/jvm`配下でした。

```shell
$ ls -l $(which java)
lrwxrwxrwx. 1 root root 22  1月 21 08:04 /usr/bin/java -> /etc/alternatives/java


$ ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 44  1月 21 08:04 /etc/alternatives/java -> /usr/lib/jvm/ibm-semeru-open-21-jdk/bin/java
```

## IBM Semeru Runtime Certified Edition

IBM Semeru Runtime Certified Editionの場合。ダウンロードはこちらから。

[IBM Semeru Runtimes Downloads / IBM Semeru Runtime Certified Edition] (https://developer.ibm.com/languages/java/semeru-runtimes/downloads/?license=IBM)

rpmをインストール。

```shell
$ sudo dnf install https://github.com/ibmruntimes/semeru21-certified-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-certified-21-jdk-21.0.5.0-1.x86_64.rpm
```

IBM Semeru Runtime Certified Editionの場合、インストールしてもパスが通っていません。

```shell
$ javac --version
-bash: javac: コマンドが見つかりません


$ java --version
-bash: /usr/bin/java: そのようなファイルやディレクトリはありません
```

どこにインストールされたのか？ということで確認してみると、`/opt/ibm`ディレクトリ配下のようです。

```shell
$ rpm -ql ibm-semeru-certified-21-jdk | grep java$
/opt/ibm/ibm-semeru-certified-21-jdk/bin/java
```

確認。

```shell
$ /opt/ibm/ibm-semeru-certified-21-jdk/bin/javac --version
javac 21.0.5


$ /opt/ibm/ibm-semeru-certified-21-jdk/bin/java --version
java 21.0.5 2024-10-15 LTS
IBM Semeru Runtime Certified Edition 21.0.5.0 (build 21.0.5+11-LTS)
Eclipse OpenJ9 VM 21.0.5.0 (build openj9-0.48.0, JRE 21 Linux amd64-64-Bit Compressed References 20241015_304 (JIT enabled, AOT enabled)
OpenJ9   - 1d5831436e
OMR      - d10a4d553
JCL      - d826c2ef42e based on jdk-21.0.5+11)
```

# ダウンロード元のGitHub organization／リポジトリ

ダウンロード時のURLを見て気づきましたが、ダウンロードはGitHubからになるんですね。

organizationはこちら。

https://github.com/ibmruntimes

IBM Semeru Runtime Open Edition（Java 21）の場合はこちらからのダウンロードになります。

https://github.com/ibmruntimes/semeru21-binaries

IBM Semeru Runtime Certified Edition（Java 21）の場合はこちらからのダウンロードになります。

https://github.com/ibmruntimes/semeru21-certified-binaries