大変お世話になっております。
反逆する武士
uematu tubasaです。
初回投稿日時:2023年5月3日(令和5年5月3日)
本日はJavaというプログラミング言語の情報整理記事です。
また、ITエンジニア以外にとっては面白くない記事です。
したがって、華麗にスルーしていただけると嬉しく思います。
さて、本題へ。
Javaの脆弱性対策が公表される
情報処理推進機構(IPA: Information-technology Promotion Agency, Japan)は4月19日、「Oracle Java の脆弱性対策について(CVE-2023-21930等)|情報セキュリティ|IPA 独立行政法人 情報処理推進機構」において、Oracle Javaに脆弱性が存在すると伝えた。
引用元:Oracle Javaに深刻な脆弱性、IPAが対策を呼びかけ
情報処理推進機構(IPA)がプログラミング言語の脆弱性対策について周知しております。
どうやらJavaに関する脆弱性対策については、時々ではありますが、注意喚起があるようです。
※参考:Oracle Java の脆弱性対策について(CVE-2023-21835等)
したがって、Javaのバージョン情報を確認し、対策を講じる必要があるかと存じます。
Java20をオラクル社が正式リリース
オラクルは本日、世界ナンバーワンのプログラミング言語および開発プラットフォームの最新バージョンである、Java 20の提供を開始したことを発表しました。
引用元:オラクル、Java 20をリリース
Java 20(Oracle JDK 20)は、プラットフォームの機能強化を含む、パフォーマンス、安定性およびセキュリティ面での数千もの改良により、開発者の生産性をさらに向上させ、組織全体のイノベーションと成長を促進します。
今まではJava8、11、17がIT現場における主要なJavaのバージョンでした。
今年においてはJava20がオラクル社から正式リリースされた模様です。
IT現場において採用されるバージョンになるかどうかは不明ですが、今後も動向が気になるところです。
Javaの仕様に関して驚いたこと
Java言語やJVM、標準で含まれるライブラリなどの仕様は「Java SE(Java Standard Edition)」と呼びます。
引用元:2022年のJavaまるわかり!最新バージョンからJavaを取り巻く環境まで
Javaの仕様にはJava SEのほかにもモバイル端末向けの「Java ME」やエンタープライズアプリケーション向けの「Java EE」といったものがあります。
しかしJava MEは現在ではほとんど使われておらず、Java EEは後述するようにオープンソース化されて「Jakarta EE」という名称に変わったため、現在は実質的にJava SEだけがJavaの仕様となっています。
やや古い記事なのですが、わかりやすいまとめ記事のようなのでご紹介します。
JavaSE(Standard Edition)だけでなく、モバイル端末向けME(Mobile Edition)、企業向けEE(Enterprise Editon)もあるようです。
個人的にはJava EEは後述するようにオープンソース化されて「Jakarta EE」という名称に変わったことは驚きでした。
最近、本屋さんで、「Jakarta EE」の参考書籍を見たのです。
今度、内容を確認しようと思います。
長期間サポートのバージョン
実際のアプリケーション開発では、半年ごとに毎回バージョンを上げていくのは現実的に難しいというケースもあるでしょう。
引用元:2022年のJavaまるわかり!最新バージョンからJavaを取り巻く環境まで
そこで3年(6バージョン)ごとにLTS(Long Term Support)と呼ばれるバージョンが設定されています。
LTSバージョンは、数年間(少なくとも次のLTSバージョンがリリースされるまでは)メンテナンスが継続されるため、商用アプリケーションでも安心して利用することができます。
本稿執筆時点でリリース済みのLTSバージョンは、2014年リリースのJDK 8と、2018年リリースのJDK 11、そして2021年リリースのJDK 17です。
Javaの新しいバージョンが正式リリースされたとしても、公式からのサポートは次のバージョンがリリースされるまでと短いようです。
万が一何かあったときのことを考えると半年毎にバージョンを上げるのは現実的には無理です。
ソースコード修正とテスト作業にどれほどの時間と費用が投下されるのか、想像するだけで怖いです。
したがって、LongTermSupportと呼ばれるバージョンが設定されており、それが8、11、17なのです。
勉強になりました。
以上です。