「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Java]] *目次 [#b9ada740] #contents *概要 [#x23ca290] **再び無償化(2021/9/14 [#u648429a] -推測では、OracleはCloudの競争力を維持のためらしい。 -最新版のOracle JDK 17(LTS)が無料で利用可能に --新ライセンス「Oracle No-Fee Terms and Conditions (NFTC)」は、~ 商用利用や本番環境での利用を含む全ユーザーに無料での利用を許可。 --四半期ごとのセキュリティ・アップデートも提供。~ 次のLTSがリリースされてから1年が経過するまで続く。 -参考 --Oracle、「Oracle JDK」を再び無料提供へ 本番環境でも利用可 - ITmedia NEWS~ https://www.itmedia.co.jp/news/articles/2109/15/news147.html --オラクル、Oracle JDKを再び無料提供へ、~ 本番環境でも利用可。昨日リリースのJava 17から - Publickey~ https://www.publickey1.jp/blog/21/oracle_jdkjava_17.html **思い立ったが吉日 [#ff828303] 久しぶりに[[こんな作業>https://techinfoofmicrosofttech.osscons.jp/index.php?Oracle11gXE%20%2B%20ODP.NET%20Managed%20Driver]]をしてたら、 SQL Developerの前提として「JDK 8 required」などの文字列が見え、 >「そう言えば、Java有償化云々って言われていて、~ イマイチ解って無いので某弊Wikiに収集した情報でも書いてみようかな。」 などと思い立ったので書いてみることにした。 **結果のサマリ [#l1f12153] ***「Javaが有償化する」というのは誤解だった? [#i7e9b9f3] -Java有償化というが、[[本質はサポート・ライフサイクルの変更>#a60d5efc]]。 -有償化と言うのは、恐らくOracle Java11以降が商用で無償利用できなくなる点を指す。 -選択肢はそれ以外にもあるので、≒ 有償化というのは語弊があるが、~ 「何もしなくても安心」的なノリなモノは、確かに、≒ 有償化になるのは事実。 ***本質はサポート・ライフサイクルの変更 [#a60d5efc] -昨今のパッケージ・マネージャを利用した開発では、早いリリースは一般的になって来ている。 -そこで、Javaのランタイム自体のリリースも、早いペースのタイムベースのリリースに変更される。 -しかし、エンプラ分野で、 --パッケージ・マネージャは、あまり浸透していなかったためインパクトが大きい模様。 --更に基幹系では、長期サポート版(LTS)が必要になってくる。コレ等はホボ有償になる。 -...と言う事で、無償のOracle版のJavaを使用し続けていたSIerにとって、 --早い(半年)ペースのタイムベースのリリースが一般化する。 --長期サポート版(LTS)が必要になるが、これらはホボ有償になる。 >と言うのが二重のショックだったらしく、大きな混乱を生んでいる模様。 ***ディストリビューション毎にサポート有/無が違う [#v8bd8117] 以下の類のサポートがある。 -パッチが適用されると言う意味のサポート -技術問合せが可能と言う意味のサポート -ものによってはオンサイト・サポートとかもあるかも。 ***ディストリビューション毎に有償・無償が違う [#n64439c7] 基本的に、 -サポートが無いものは無償 -サポートが有っても、パッチまでのサポートは無償。 -技術問合せ以上のサポートが有るものは当然、有償。 -技術問合せ以上のサポートが有るものは、当然、有償。 と言った感じになっている。 **考えられる選択肢 [#j6b544db] ***バージョンアップしない。 [#w67fa2e1] -エンプラは結構、バージョン上げないことが多い(≒ 今迄どおり)。 -それは、それでイイのだケド、サポートが提供されないのが問題。 -よくよく考えると、.NETなどのサポートも[[近年、結構変わっていた>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97#x721bd87]]んだよ? ***無償のOpenJDKへ移行 [#i07644ae] -移行(動作保証のためのテスト)が必要になるし、 -半年毎のバージョンアップしないとパッチ提供されないのが問題。 -また、当然、無償なので、技術サポートなどは無い。 -OpenJDKのディストリビューション --AdoptOpenJDK~ LTS版があるので、3~4年ごとにバージョンアップで済む --Zulu~ --Amazon Corretto~ --その他 ***有償のディストリビューションへ移行 [#cf50e07e] -OracleJDK~ 今迄どうりだが、お金がかかる。~ ※ これが、所謂一つの、Java有償化。 --OracleJDK 8を使い続ける。 --OracleJDK 11へ切り替える。 ---... ---LTS版なら3~4年ごとにバージョンアップ -クラウド上 --Zulu --Amazon Corretto --, etc. -その他 --Red Hat --IBM --, etc. *詳細 [#e806e49b] **互換試験キット [#xb265e00] Test Compatibility Kit(TCK、互換試験キット)と言うものがあり、~ 各社、別々の ディストリビューション を リリース することが出来るらしい。 **OpenJDK [#d9f81a03] ***8以前 [#tf1e2e10] ... ***9以降 [#f0a56254] -OpenJDKのリポジトリがJavaのマスタになったらしい。 -開発スタイルが変わったので最新版のみのメンテナンスする方向。 -バージョンアップは半年ペースで、最新版のみをサポート対象とする予定。 ***企業との関係 [#rf6bee3c] -Oracleと連携をとって開発されており、機能的な差異は無いとされている。 -Oracleが半年オーナー、以後、TLSのサポートに挙手した、~ 企業オーナー(≒ RedHat)になるのがコミュニティ上の慣例らしい。 ***リリース [#k871bb44] -公式のOpenJDKというものは存在しない。 -オーナー企業が個別のディストリビューションとしてリリースするらしい。 *ディストリビューション [#h40443f0] **Oracle [#t77c30a7] Oracle Javaは、Java全体の70%程度を占めているらしい。 ***サポート [#ob3e07ee] -Oracle Java 9や10は既にサポート切れ~ (多分、パッチ、技術問合せなどのサポートも) -Oracle Java 8の無償サポートは2019年1月まで~ ※ 無償化終了後の初のアップデートで、~ 一般のWindowsユーザー向けのJavaアップデートでも~ [[新しいライセンス(OTNライセンス)>#rc03ed53]]のJavaがダウンロードされる。~ (OTNライセンスは開発 / テスト / デモなど目的を除く商用利用は有償になる) ***有償版 [#hb522e6a] 有償LTS版(長期サポート版)~ -価格など~ http://www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf -リリース~ バージョンアップは3年毎の予定。 --現在は、8 --次回は、11の予定 -特典: Java SE 8 の アップデート・リリース --Premier Supportサービス: 2022年3月まで --Extended Supportサービス: 2025年3月まで --Sustaining Supportサービス: 無期限 ***[[リリース>Java#z24a058c]] [#wd01436a] **Oracle以外 [#had7dbf8] ***AdoptOpenJDK [#v40f00f6] -OpenJDKのビルドを提供するプロジェクト(ソースは同じビルドが違う)。 -IBM, Microsoft, Azul Systems, etc.のバックアップ -OpenJDKより多くのプラットフォームに対応(AIX)。 -リリース --半年ごとにアップデートする通常のバージョン --4年のサポートを行うLTS版を提供する予定 --現時点のリリースとアップデートリリース期間 ---OpenJDK 8 (LTS)、2023年 9月 ---OpenJDK 11 (LTS)、2024年 9月 ***Zulu [#f163eddd] -Microsoft と Azul Systems による -Azure での公式 / 無料 / LTS -Windows用のインストーラーが提供 -リリース --現時点のリリースとアップデートリリース期間 ---version 8 (LTS): 2023年6月 ---version 11 (LTS): 2024年8月 ***Amazon Corretto [#p8fd5336] -Amazonの提供するJava -Amazon AWSの公式JDK -Windows用のインストーラーが提供 -リリース --現時点のリリースとアップデートリリース期間 ---Corretto 8 (LTS): 2023年6月 ---Corretto 11 (LTS): 2024年8月 ***その他 [#ee303fa0] -Red Hat --Red Hat Linux / CentOS / Windowsに提供される可能。 --OSに内包するOpenJDK8のサポートは2020年10月まで。 --Windows版のRed Hatミドルウェア向けにもサポート含み提供される。 --アップデートの提供(Java 8: June 2023、Java 11: October 2024) -IBM~ IBMの提供するJava -, etc. **フィーとサポート [#fb27e821] フィー型か?サポート型か?、~ また、其々の価格設定は各ベンダによる。 ***フィー型 [#u1591925] ***サポート型 [#jbaf403a] **開発者ライセンス [#c7f79e2e] ほとんどのディストリビューションで提供される模様。 ***OTNライセンス [#rc03ed53] -開発 / テスト / デモ用途の場合はチャージされないらしい。 -パーソナルユースでも開発 / テスト / デモ用途以外はNGだったが、~ 以下で、Java8以降はパーソナルユースでの使用が可能になったらしい。~ >Oracle Technology Network (OTN) License Agreement for Oracle Java SE~ ...ゲームでも使われているため(マインクラフトのJava版があったりするらしい)。 -Oracle Java SE License~ https://www.oracle.com/downloads/licenses/javase-license1.html ***... [#qa81c485] **共存 [#y81976b6] ***ディストリビューション [#me7b2c73] -基本的に各ディストリビューション毎にインストール先の~ フォルダ(ディレクトリ)は異なるためバイナリ自体は共存可能。 -有効になるのは、PATH環境変数への実行パスが設定されているもの。~ 殆どのディストリビューションで、インストーラが自動でパスを設定するので(Oracleを除く)、~ 最後インストールしたJavaが利用されることになる。 -ディストリビューションによってはインストール時のオプションで~ 上記のOracle Javaのリンクを上書きするインストーラを提供している。 ***バージョン [#q9196512] -Java 8ではOracle JavaはOpenJDK 8にない機能(Java Applet等)が含まれている。 -Java 11 以降 Oracle は Oracle JavaとOpenJDKとで機能差をなくしたので、~ OpenJDK 11 以降のどのディストリビューションでも問題なく動作する。 **Windows版 [#n6dfd90a] ほとんどのディストリビューションで提供される模様。 *参考 [#k57dfd72] -2019年1月以降どのJavaを使うべき?~Oracle Java有償化後~~ https://papa111.com/2019/01/09/post-560/ -JDK: 新しいリリースモデル解説(ver.2.1)~ https://www.slideshare.net/oracle4engineer/jdk-ver21 **ユーザ系 [#nd4823f9] -アップデート終了でどうなる、Java有償化問題 | Navi.(情シスナビ)~ https://josys-navi.hiblead.co.jp/josys-bk_java%E6%9C%89%E5%84%9F%E5%8C%96%E5%95%8F%E9%A1%8C_181130 -Oracle Java 有償化。その現状と企業の今後の対策について調査報告。 | Call Center Trends~ https://callcenter-trend.com/2019/01/10/oracle-java-roadmap-and-plans/ **IT関連サイト [#g02d3bd2] -Java 11正式版がリリース、本バージョンから~ 「Oracle JDK」のサポートは有償に (1/4) - ITmedia エンタープライズ~ https://www.itmedia.co.jp/enterprise/articles/1809/28/news101.html -JavaアップデートでインストールされるJava、~ 無償利用が一部用途にのみ限定されたバージョン~ に切り替わる | スラド デベロッパー~ https://developers.srad.jp/story/19/04/23/0821225/ -公式アップデートの提供方法の変更に伴う Java SE の~ 商用ユーザに向けた注意喚起:IPA 独立行政法人 情報処理推進機構~ https://www.ipa.go.jp/security/announce/java8_eol.html **トレンド [#g684f906] リリースモデル変更後のトレンド -New Relic - Javaの現状報告~ https://www.infoq.com/jp/news/2020/04/new-relic-jvm-report/ -Javaの現状:世界で最も人気のあるプログラミング言語の~ 一つであるJavaの動向とデータ - New Relic公式ブログ~ https://blog.newrelic.co.jp/engineering/state-of-java/ **Wikipedia [#o2872a32] -OpenJDK - Wikipedia~ https://ja.wikipedia.org/wiki/OpenJDK **Publickey [#ge9f4c91] -来月にはJava 10が登場し、9月にはJava 11が登場予定。~ 新しいリリースモデルを採用した今後のJava、~ 入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)~ https://www.publickey1.jp/blog/18/java_109java_11java.html -Microsoft Azure上での実行目的なら~ Javaの長期サポート(LTS)を無料提供、~ MacやWindowsでの開発用途もOK。~ マイクロソフトとAzul Systemsが提携で~ https://www.publickey1.jp/blog/18/microsoft_azurejavaltsmacwindowsokazul_systems.html -AWS、「Java 8」を2026年まで、「Java 11」は~ 2027年まで、現行より3年サポート期間延長を発表。~ 独自JavaディストリビューションのCorretto 8とCorretto 11で~ https://www.publickey1.jp/blog/20/awsjava_82026java_1120273javacorretto_8corretto_11.html -マイクロソフトが無償でJavaの長期サポートを提供へ、~ 「Microsoft Build of OpenJDK」をリリース~ https://www.publickey1.jp/blog/21/javamicrosoft_build_of_openjdk.html **AdoptOpenJDK - Open source, prebuilt OpenJDK binaries [#md478ae9] ***Java8、LTS版 [#f6e5c5ab] hotspot の JDK を選択する場合。 -JDK --AdoptOpenJDK - Open source, prebuilt OpenJDK binaries~ https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot -JRE~ 以下からプラットフォームのJREを選択してダウンロード。 --Archive | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries~ https://adoptopenjdk.net/archive.html?variant=openjdk8&jvmVariant=hotspot -インストールが完了したら、システム環境変数にJAVA_HOMEを設定する。~ (何気に、インストール・オプションで自動登録も可能) JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.222.10-hotspot ***判断基準 [#qe9689ff] -JDK or JRE --JDK:開発用 --JRE:実行環境用 -Hotspot or OpenJ9 --Hotspot:Oracle Javaを使用している場合 --OpenJ9:IBM Javaを使用している場合