前回まで、Java SEの最も基本となるjava.baseモジュールの新機能を紹介してきました。今回はちょっと趣向を変えて、API以外に知っておきたい新機能や変更について紹介します。バージョン表記や非推奨APIの明確化、コンパイラのjavacやドキュメント自動生成のJavadocの改善といったものです。

バージョン表記

 Java SEのバージョン表記に紆余曲折があったのは、みなさんご存じの通りです。Java SE 8も「8」が表向きの「バージョン番号」であるにもかかわらず、javaコマンドを-versionオプションを指定して実行すると「1.8.0_131」のように出力されます。過去の経緯もあり、1.8.0は「バージョン文字列」として扱われます。バージョン番号とバージョン文字列は別物だと、公式ドキュメントにもうたってあります。この使い分けは煩雑でしかなく、アップデートリリースの番号も複雑になっていました。

 そこで、JEP 223: New Version-String Schemeにおいて、新しいバージョン番号とバージョン文字列が提案されています。新しいバージョン番号は以下のように定義されます。

Major.Minor.Security

 Major、Minor、Securityのいずれも数字だけで構成されます。Majorはメジャーバージョンを表します。Java SE 9であれば「9」がメジャー番号です。

 Minorはマイナーバージョンを表します。Java SEはJ2SE 5からマイナーバージョンアップがありませんでした。しかし、当初は機能の追加はないとされていたアップデートリリースでも、機能追加が行われるようになっています。そこで、Java SE 9ではマイナーバージョンアップが復活することになりました。

 最後のSecurityはセキュリティレベルを表します。セキュリティレベルは、マイナーバージョンアップがあっても「0」に戻ることはありません。あるメジャーリリースにおいてはセキュリティレベルが大きい数字であれば、より多くのセキュリティアップデートがあったことを示しています。

 したがって、Java SE 9のリリース時のバージョン番号は「9.0.0」となります。MinorとSecurityが共に0なので、バージョン番号を9としてもかまいません。

 また、バージョン文字列はバージョン番号にビルド番号を"+"文字で組み合わせた文字列となります*1。例えば、Java SE 9のビルド番号が177であれば、9.0.0+177もしくは9+177がバージョン文字列になります。

*1 ビルド番号は省略することもできます。省略した場合、バージョン文字列はバージョン番号と同じ表記になります。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら