8.3.8. Java21で使用する場合のセットアップ方法

ブランクプロジェクトをJava21で使用する場合、各ブランクプロジェクトの疎通確認前に以下の手順を行う。

  • 依存モジュールの追加
  • gsp-dba-maven-pluginがJava21で動くように設定する
  • 自動テストで使用するJettyのモジュール変更(ウェブプロジェクト または RESTfulウェブサービスプロジェクトの場合のみ)
  • –add-opensオプションの追加(JSR352に準拠したバッチプロジェクトの場合のみ)
  • 標準エンコーディングの変更(標準エンコーディングをJava17以前と同じ実行環境にしたい場合)
  • Javaバージョンの変更

8.3.8.1. 依存モジュールの追加

上記の手順はJava17を使用する場合と同じなので、Java17で使用する場合のセットアップ方法 を参照する。

8.3.8.2. gsp-dba-maven-pluginがJava21で動くように設定する

上記の手順はJava17を使用する場合と同じなので、Java17で使用する場合のセットアップ方法 を参照する。

8.3.8.3. 自動テストで使用するJettyのモジュール変更(ウェブプロジェクト または RESTfulウェブサービスプロジェクトの場合のみ)

上記の手順はJava17を使用する場合と同じなので、Java17で使用する場合のセットアップ方法 を参照する。

8.3.8.4. –add-opensオプションの追加(JSR352に準拠したバッチプロジェクトの場合のみ)

上記の手順はJava17を使用する場合と同じなので、Java17で使用する場合のセットアップ方法 を参照する。

8.3.8.5. 標準エンコーディングの変更(標準エンコーディングをJava17以前と同じく実行環境依存にしたい場合)

Java18から標準エンコーディングがUTF-8に統一され、環境依存ではなくなっている。 標準エンコーディングをJava17以前と同じく実行環境依存にしたい場合は、以下のようにJavaコマンドの実行時オプションとしてシステムプロパティを指定する。

  • -Dfile.encoding=COMPAT

補足

Mavenから実行する場合は、環境変数 MAVEN_OPTS (外部サイト) を使うことでJVMオプションを設定できる。ただしログに Picked up MAVEN_OPTS: -Dfile.encoding=COMPAT が表示される。 なお、MavenプラグインによってはJVMオプションの設定方法が異なる場合があるため注意すること。(例えばテストを実行するmaven-surefire-pluginでは、pom.xmlのプラグイン設定にある argLine で指定する必要がある)

重要

Java17までは -Dfile.encoding=COMPAT というオプションは有効ではないので、従来の実行環境にこのJVMオプションが適用されないように注意すること。

8.3.8.6. Javaバージョンの変更

ブランクプロジェクトではソース及びclassファイルが準拠するJavaのバージョンとしてJava8が設定されているため 以下のようにファイルを変更する。

  • pom.xml
<!-- Javaバージョンの箇所を以下のように変更する-->
<java.version>21</java.version>