先日LTSであるJava21がリリースされたJavaについて。
メジャーバージョンがかなり早い頻度でリリースされるようになってきた一方で、開発者にとってはこんなメッセージで苦しまされることも多いのでは。
例: エラーメッセージ
java.lang.IllegalArgumentException: Unsupported class file major version 61
ちなみに上記はgradle由来のもの。
利用しているライブラリのバージョンアップを行いたい場合、現在利用しているJavaのバージョンよりも新しいバージョンのみをサポートしている場合には注意が必要となる。
例えば現在コンパイルで利用しているバージョンがJava11の場合、利用しているライブラリの新バージョンがJava17でコンパイルされている場合に上記のようなエラーが出る。
コンパイルで利用されたJavaのバージョンについては、各種ライブラリの公式ドキュメントやコードを読む必要がある。
親切な場合はサポート用のページが用意されているが、割とメンテナンス者によって左右されるところかも。
ちなみにjarファイルはzipとして解凍可能なので、直接中のclassファイルに対してコンパイルされたバージョンをチェックすることもできる。