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

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

  • 標準エンコーディングの変更(標準エンコーディングをJava17以前と同じ実行環境にしたい場合)
  • Javaバージョンの変更

標準エンコーディングの変更(標準エンコーディングを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オプションが適用されないように注意すること。

Javaバージョンの変更

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

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