全体的に修正いたしました。
###質問
なぜOracleのJavaのSDKがバージョン11から、商用利用をすると有料になるのか。
これまでどおりOracleのSDKは使えるのか。
追記
Webで調べたのか
teratailで調べてみましたが、あまり検索に引っ掛からず、引っ掛かった物を見ても理解できませんでした。
Webで調べてみると、バージョン11から商用利用が有料になるとしっかり書かれていたのですが、Oracleのどのバージョン11が有料になるのかが分からず、有料になるのがSDKで本当に合っているのか分からなかったので質問しました。
謝罪
この度は不適切な質問をしてしまいました。
誠に申し訳ございません。
次回からは反省を生かし、サイトに合った質問をするよう努力します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/06 02:52
2019/04/06 02:54

回答5件
0
ベストアンサー
長すぎるので先に結論を書いておきます。なお、2019年4月6日時点での情報に基づきます。
- サポート期間内のJava 8、 Java 11、 Java 12のいずれかの最新アップデートを使うこと。(Java 12はサポート期間が2019年9月までであることに注意してください。)
- 無料で商用利用したい場合は、Oracle Java SEではなく、下記のOpenJDKのビルドを使うこと。
バージョンとアップデートと脆弱性
これまで無償で使用可能として配付されてきたJavaが有料になるのでは無く、特定バージョン以降または特定バージョンの特定アップデート以降のOracle Javaが有料になると言うことです。
まず、Javaは定期的に脆弱性を修正したアップデートがリリースされます。このアップデートを適用せずに放置していた場合、脆弱性がパソコン内に潜むことになりますので、最悪、リモートからパソコンが乗っ取られる可能性すらあります。原則、アップデートがリリースされたら可能な限り早く適用しなく無くてはなりません。
また、サポート期間が終了した古いバージョンのJavaはこの脆弱性が修正されたアップデートがリリースされることはありません。そのようなバージョンを使用し続けた場合、脆弱性が発見されてもアップデートを適用するという方法で対応することができず、脆弱性が潜み続けることになります。別の方法で脆弱性を防がない限り、早急にバージョンのアップデートをしなければなりません。
つまり、脆弱性に対応したアップデートはリリース後はなるべく早く適用すること、アップデートの提供が終了した(サポート期間が終了した)バージョンは使わないこと、が原則です。原則を外れる場合は、セキュリティ専門家にアドバイスを貰いながら、別手段で脆弱性対応をしなければなりません。
もう一つ、最初は無料でもあっても、特定のアップデートは有料という場合があります。アップデートが提供される期間がサポートのプランによって変わる場合もあります。そのことにも注意が必要です。
最後に、無料でダウンロードできると無料で利用できるは違います。例えばDBであるOracleは無料で誰でもダウンロードできますが、無料で入手したOracleは開発以外には使えません。
それぞれのバージョンの評価
以上を踏まえて、ご利用のバージョンがどのようになっているかを指摘します。下記は2019年4月6日時点の情報であることに注意してください。
『Java SE Development Kit 8 Update 181』
Oracle Java SE 8u181(8 Upadte 181はこのようにも表現)は古いアップデートです。現在の最新アップデートは8u201であり、多くの脆弱性が修正されています。たとえば、Oracle Java の脆弱性対策について(CVE-2018-11212等)に記載されているような極めて危険な脆弱性を含みます。これらの脆弱性について別途担保できない限り、使用してはいけません。アップデートがあることを無視して使用し続けた場合、脆弱性を利用した攻撃で損害を被る可能性が高いです。その場合は、瑕疵を問われて、損害賠償を請求される可能性もあります。
Oracle Java SE 8u201は商用利用可能な最後のOracle Java SE 8アップデートです。ただし、Oracle社は4半期毎にアップデートをリリース計画であるため、2019年4月中には新しいOracle Java SE 8アップデートがリリースされる予定です。その際、該当のアップデートで対応した未公表の脆弱性も発表されます。この2019年4月リリースのアップデートを商用利用する場合は、Oracle社とライセンスを取得する必要があります。サポート契約を結ばずにいた場合、Oracle社から高額なライセンス費用を請求される可能性があります。
『Java(TM) SE Development Kit 10.0.1』
『Java 10.0.2』
Java 10はサポート期間が終了しました。どのような脆弱性があっても、アップデートは提供されません。そればかりか、脆弱性があるかどうかすら調べられません。例えば、上記で書いたCVE-2018-11212はJava 10でも対象になるかならないかは公式には誰も調べていないだけで、既に、悪意ある人達は試していることでしょう。対象であった場合、この脆弱性に対応する手段はありません。そのような脆弱性がすでに多く潜んでいる可能性があります。
サポート期間切れのものを使い続けた場合、それに対応しなかった責任は重いとして、損害賠償は莫大なものになる可能性があります。
無料のまま商用利用するにはどうすべきか?
現在サポート期間中のJavaはJava 7、Java 8、Java 11、Java 12です。これらの何れかを使う必要があります。ただし、Java 7はOracle社とExtended Supportを結ぶ必要がありますので、無料で使用することはできません。
Oracle Java SEのJava 8(2019年2月以降リリースされたアップデート)、Java 11、Java 12を商用利用する場合は有料です。Oracle Java SE 8u201は無料でも利用可能ですが、もうすぐ古くて危険なアップデートになります。ですので、Oracle Java SEを無料で使うことはできません。(ダウンロード自体は無料で可能です。ただし、無料で入手したJavaは開発以外に使用してはいけません。)
ということで、Oracle Java SE以外の手段を取る必要があります。それはOpenJDKです。OpenJDKはコミュニティが開発しているオープンソースのJavaです。ただし、Oracle社を含む多くの企業が支援しています。しかし、OpenJDKのOracle社による公式ビルド(Oracle OpenJDK、jdk.java.netで配付)はサポート期間が半年と短く、長期間のアップデートが提供される予定ではありません。そこで、OpenJDKに対して長期間サポートを行う別のJavaを入れることをお勧めします。候補は下記の三つです。
これら三つのどれかのJava 8かJava 11の最新版を使い続けるのが良いでしょう。最新の機能を試すためにJava 12でもいいですが、non-LTSであるため、Oracle Java SEと同じく半年(2019年9月まで)しかサポートされないことに注意して下さい。
投稿2019/04/05 22:16
編集2019/04/06 10:32総合スコア21741
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/06 09:37
2019/04/06 10:47 編集
2019/04/08 14:40

0
すでにベストアンサーがついた後ですが、有用な資料があるので紹介しておきます。
Java Is Still Free
Javaは今も無償です(上記の日本語訳)
「質問する前に調べろや」みたいなコメントが見受けられますが、下記のような資料も未だ飛び交っている中なので、この件に疑問を持つのは仕方ないんじゃないのかなあと思いますけどねえ・・・。
2019年にJavaを利用している人は全員理解すべきことを説明してみる
これ、他のプロバイダによるビルドについては「わざと」一切触れていませんよね。悪意剥き出し。
投稿2019/04/06 09:47
編集2019/04/06 11:35総合スコア6768
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
なぜ有料になるのか
Java の開発元だったサン・マイクロシステムズ社をオラクル社が買収して経営方針が変わったからですね。
なぜこのタイミングで有償化するのかは、オラクル社に聞かないと分からないと思いますが。
無料との違いは何なのかがよくわかりません。
以下のリンク先を読んでください。
JDKの新しいリリース・モデルおよび提供ライセンスについて
https://www.oracle.com/technetwork/jp/articles/java/ja-topics/jdk-release-model-4487660-ja.html
Oracle Java SE サポート・ロードマップ
https://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
投稿2019/04/05 21:59
総合スコア6500
0
JavaとoracleJDKとOpenJDKが私の中で混乱してしまい、
抽象的な質問をしてしまいました(現在は出来る限り修正しました)。
誠に申し訳ございませんでした。
Android StudioにOpenJDKが同梱されている事が分かったので、そちらを使っていこうと思います。
投稿2019/04/08 13:59
総合スコア12
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/12 15:50

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。