バナー画像

インターネットで「Java se」と検索すると、「Java SEとEEの違い」の他に「Java有償化」などが目に入りますが、Oracle社が公表したロードマップでも2019年からはJavaの仕様がガラリと変わっていることが分かります。

今回の記事ではJava SEとその他のバージョンの違いの他、Oracleが発表したリリースモデルの変更などについて解説していきます。

Java SEとは

Java SEってなんですか?他のJavaとの違いは?

Java APIの一つです。SEとは最も基本的なパッケージを指します。

まず最初にJava SEと他のものについての違いをご説明します。ざっくり言ってしまうと「API」の呼称です。

Javaには「Java SE」「JAva EE」「Java ME」の3種類のAPIがあります。
この3つの違いについては後述しますが、要するにこれらAPIのおかげでJavaでプログラミングしたものを動作させることができるわけです。

ポテパンダの一言メモ

APIとは「Application Programming Interface」の頭文字を繋げた略語です。日本語で書くと「アプリケーションをプログラミングするためのインターフェース」となります。プログラミングにおけるAPIとは、関数やクラスといった場合がほとんどです。

APIの違い

先ほどご紹介した3つのAPIについてもう少し掘り下げて紹介していきます。

Java SE

正式名称は”Java Standard Edition”。Java APIはこのSEの冠名があるものが標準のものとなってます。

基本的に必要と思われる機能だけを実装した最低限のAPIです。

Java EE

正式名称は”Java Enterprise Edition”。Java SEに、企業向けのWebアプリケーション開発用の機能を追加したAPIです。

サーバー関係のライブラリなどもこのJava EEには用意されています。

Java ME

正式名称は”Java Micro Edition”。こちらはあまり馴染みのない方が多いのではないでしょうか。

Java SEにモバイルデバイスや組み込み機器で動作するアプリケーションの機能を追加したAPIです。

ポテパンダの一言メモ

J2SEやJ2EEという名前なら聞いたことがある方もいらっしゃいますよね。恐らくもう無いとは思いますが、「J2」という冠名がついているAPIはJava SEやJava EEなどの旧名称ですので、どちらでも変わりはありません。Java SEであれば旧名称はJ2SE、Java EEであれば旧名称はJ2EEとなります。

バージョンの違い

バージョンが変わるとどうなりますか?

バージョン毎に新機能が追加されたり開発に係わる仕様が変わったりします。

今ではJava SEも12までリリースされています。

バージョンが変わる毎に色々な仕様が変更されてきましたが、Java 10からはvarを使った型推論などが実装されました。

型推論

この方推論の実装によって、varで定義された変数は、格納した値によってデータ型を指定する必要がなくなりました。

詳しくは以下のようになります。

var list = new ArrayList();  // listはArrayList型と推論される
var stream = list.stream();  // streamはStream型と推論される

拡張子の追加

Java 11からはjavaコマンドで拡張子が「.java」のファイルを直接実行できるようになりました(コンパイルしてから実行することも可能です。)。

>java HelloWorld.java

Java SEの有償化について

Oracle社が2017年に発表したリリースモデルにより、2019年4月からJavaに関するライセンスが有償化されました。

この発表を受けたユーザーの間では「今後はJavaが無料で使えなくなる」などの噂も飛び交いましが、実際には次のように変更されました。

長期サポート(Long term Support)の有償化

Java SEの「長期商用サポート(LTS)」が有償化されました。これに伴い商用利用するためにはOracle社とのライセンス契約が必要となります。

Oracle Java SE 8u201は商用利用可能な最後のOracle Java SE 8アップデートです。ただし、Oracle社は4半期毎にアップデートをリリース計画であるため、2019年4月中には新しいOracle Java SE 8アップデートがリリースされる予定です。その際、該当のアップデートで対応した未公表の脆弱性も発表されます。この2019年4月リリースのアップデートを商用利用する場合は、Oracle社とライセンスを取得する必要があります。サポート契約を結ばずにいた場合、Oracle社から高額なライセンス費用を請求される可能性があります。

公式サイトより抜粋

一般ユーザー向けには2007年よりOpen JDKというものが存在しますので、今後も無償で利用することが可能です。

リリースサイクルの短期化

Oracle社は公式サイトで「新機能が追加される6カ月に1回(毎年3月と9月)のフィーチャー・リリースに加え、脆弱性対策などを施したアップデート・リリースを各フィーチャー・リリースに対して2回提供します。」と発表しています。

これは長期商用サポートの有償化とリンクしている部分でもありますが、今まで2年周期だったリリースサイクル(何度かリリース周期に遅れのあったバージョンも存在)が短期間(必ず6ヶ月毎にリリース)で行われるようになります。

機能の追加

従来は機能の追加を目標として掲げていたに過ぎませんでしたが、新たなリリースモデルでは機能追加を固定と発表しています。このことから、今後は確実に何らかの追加機能が実装されるのではないかと予想されます。

要点をまとめると
  • Oracle JDKのLTS版が有償化された
  • LTSは3年毎、None LTSは6ヶ月毎のリリースサイクルに変更
  • 6ヶ月毎のリリースで必ず何らかの機能を追加
  • Open JDKの無料サポートの期間を変更(次期バージョンリリースまで)

今後注意すべき点

この項目では、有償化に伴い今後Javaを使用するにあたっての注意点について説明していきます。

None LTS版に移行する

Open JDKのバイナリはオープンソースライセンスで公式バイナリとして配布されていますので、当然様々なディストリビューターが存在していますし、これらの中には長期無償アップデートを提供している企業もあります。

Oracle JDKを有償化するとの発表がなされたことで、今までOracleJDKを利用していた方は無償版であるOpenJDKに移行することも検討する必要があります。

ただし、None LTS版のサポートが半年と制限されてしまったことで商用利用には難しくなったかもしれませんが、個人利用に限っては特に問題とはならないようにも感じます。

追加機能の内容を確認する

今までもそうでしたが、Javaのバージョンアップに伴う追加機能は重要なものが多くありました。

今後はそうした追加機能のリリースサイクルが6ヶ月になりますので、今までよりも更に速い速度で様々な機能が追加されていきます。

Javaでの開発をされる方は、必ずこの機能に目を通しておく必要が出てきますので、常に新鮮な情報を仕入れるように心がけましょう。

また商用機能と呼ばれるもの(今まで有償で提供されていたOracle JDKの機能)も、JDK 11から無償で利用できるように変更されました。このことから、一般ユーザーも一度Oracle JDKの機能を洗い出してみた方が良いでしょう。

まとめ

Java SEの有償化は世界中のユーザーにとって不安要素でしたが、蓋を開けてみれば意外にも一般ユーザーにとってはメリットの方が多いという結果になりました。

ただし新しいライセンスでは、いかなる場合であっても無償利用は個人利用・開発目的に限るという内容に変更されましたので、商用ベースで利用しているユーザーはOpen JDKのディストリビューションに切り替えるか”Oracle Java SE Subscriptions”の購入を検討する必要が有りますのでご注意ください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。