質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

5回答

2145閲覧

商用利用でのJavaのJDKが有料化?

folate

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

3クリップ

投稿2019/04/05 17:11

編集2019/04/06 05:01

全体的に修正いたしました。

###質問

なぜOracleのJavaのSDKがバージョン11から、商用利用をすると有料になるのか。

これまでどおりOracleのSDKは使えるのか。

追記

Webで調べたのか

teratailで調べてみましたが、あまり検索に引っ掛からず、引っ掛かった物を見ても理解できませんでした。

Webで調べてみると、バージョン11から商用利用が有料になるとしっかり書かれていたのですが、Oracleのどのバージョン11が有料になるのかが分からず、有料になるのがSDKで本当に合っているのか分からなかったので質問しました。

謝罪

この度は不適切な質問をしてしまいました。
誠に申し訳ございません。
次回からは反省を生かし、サイトに合った質問をするよう努力します。

keicha_hrs, memb_rou👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/05 21:05

過去質問や数多あるWeb上の記事を参照した上での質問ですか? もし参照されたのでしたらその旨記載してください。されてないのでしたら、まず探してしっかり確認してください
len_souko

2019/04/06 02:54

Oracleが決めたことに対して理由などのはOracleに訊いてください Oracle以外の者にはわかりません Oracleが発表していることを見ても納得がいかないのであれば外部の者には推測しかできませんのでそれ以上のことを聞かれてもわかるわけもありません
guest

回答5

0

ベストアンサー

長すぎるので先に結論を書いておきます。なお、2019年4月6日時点での情報に基づきます。

  1. サポート期間内のJava 8、 Java 11、 Java 12のいずれかの最新アップデートを使うこと。(Java 12はサポート期間が2019年9月までであることに注意してください。)
  2. 無料で商用利用したい場合は、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
raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

folate

2019/04/06 05:03

不適切な質問で本当に申し訳ありません。 そして、親切な回答、本当にありがとうございました。 次回からはサイトにあった質問をするよう心がけます。
keicha_hrs

2019/04/06 09:37

重箱の隅を突くようで申し訳ないのですが、Oracle JDKは「OracleによるOpenJDKビルド」であり、「Oracle JDKを使わずOpenJDKを利用しよう」という回答には矛盾を感じます。
raccy

2019/04/06 10:09

> keicha_hrsさん Orace Java SEがOpenJDKをビルドしただけのものであるという公式なページが見つけられませんでした。OracleがOpenJDKをビルドして配付しているもの(Oracle OpenJDK)と、Oracle Java SEとして配付しているものがライセンスそのものが違っており、明確にわかれていますです。Oracle Java SEはクローズドソースであるため、OpenJDKのソースのみを使っていることすら外部からはわかりません。keicha_hrsさんはどうやってその事実を知ったのですか?
raccy

2019/04/06 10:29

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later 上のOracle社の公式なブログを確認しましたが、Oracle Java SEとOracle OpenJDKにはJavaの機能として違いは無くても、その中身には少なからず違いがあると書いてあります。それでも「Oracle JDKは『OracleによるOpenJDKビルド』」であると主張する根拠は何でしょうか?全く同じものをビルドしたのに、なぜ中身に違いが出てくるのでしょうか?
keicha_hrs

2019/04/06 10:47 編集

正にraccyさんが示していただいたブログエントリーの中にある "From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds will be essentially identical." という文、そして私の回答で示したドキュメントのFAQにある "We'll just talk about Java 11+ LTS releases here. Oracle JDK and Oracle OpenJDK build are identical, but are licensed in different ways (commercial and GPLv2+CE respectively)." という文がそれを示していると私は考えました。それは証明にならないとお考えになるのであれば、見解の相違ということになりますので、これ以上の議論は避けたく思います。
raccy

2019/04/06 11:10

そうですね、見解の相違ですね。ただ、私としてはこの違いは小さくない問題です。 私事ですが、私の所のあるシステムの更新で、Javaの有償ライセンスの関係で、既存のプライベートクラウドに載せるのでは無く、全て物理サーバーにせざるを得ないと言うことになりました。OpenJDKが同じものであり、全く一緒であるというのであれば、安くするためにJavaはOpenJDKで提案しろと言えるのですが、同じであるとは言えないからこそ、向こうの提案である有償のJavaを使用することを飲まざるをえませんでした。他にも既存のシステムでJavaを使っている物については、どう対応するのかを開発元に全て問い合わせをするようにしたのですが、AdoptOpenJDKに変えますと言ったところでさえ、検証に時間がかかっているのでしばらく待ってくださいという始末です。その人達に、同じなんだから何も検証必要ないだろう、早くしろ、なんて私は言えません。 Java有償化の話はよくわかっていない営業も多いのですが、後ほど高額なライセンス費用が請求されることだけは避けなければなりません。かといって、ライセンス費用が高いからとOpenJDKを使ったら動かないなんてことも避けなければなりません。ビジネスとしては楽観視できるような話では全くありません。
pepperleaf

2019/04/08 14:40

「Oracle社による公式ビルド」だったら、オラクルにクレームを入れられる。(対応されるかは別) で、OpenJDKは無理って事だと理解してますが。 バグがあった時も同様で、「公式ビルド」なら、オラクル社の責任と言える、と理解してます。 仕事で使う場合、この違いは大きいと思います。
guest

0

すでにベストアンサーがついた後ですが、有用な資料があるので紹介しておきます。

Java Is Still Free
Javaは今も無償です(上記の日本語訳)


「質問する前に調べろや」みたいなコメントが見受けられますが、下記のような資料も未だ飛び交っている中なので、この件に疑問を持つのは仕方ないんじゃないのかなあと思いますけどねえ・・・。
2019年にJavaを利用している人は全員理解すべきことを説明してみる

これ、他のプロバイダによるビルドについては「わざと」一切触れていませんよね。悪意剥き出し。

投稿2019/04/06 09:47

編集2019/04/06 11:35
keicha_hrs

総合スコア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

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

folate

2019/04/06 05:05

回答ありがとうございます。 しっかり読んでおきます。 この度は不適切な質問をしていまい、誠に申し訳ございませんでした。
guest

0

なぜ有料になるのか、はオラクルに聞きましょう。
他人に聞いても意味はありません

今入ってるものに関しては大丈夫ですね

投稿2019/04/05 21:01

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

folate

2019/04/06 05:07 編集

回答ありがとうございます。 承知しました、知識不足で申し訳ございません。 次回からは、もう少し調べてから質問します。
guest

0

JavaとoracleJDKとOpenJDKが私の中で混乱してしまい、
抽象的な質問をしてしまいました(現在は出来る限り修正しました)。
誠に申し訳ございませんでした。

Android StudioにOpenJDKが同梱されている事が分かったので、そちらを使っていこうと思います。

投稿2019/04/08 13:59

folate

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keicha_hrs

2019/04/12 15:50

Android Studioで開発したアプリをビルドするJDKをどうするかで思案されていたのですか?もしそうだとしたら、お気付きの通り同梱のOpenJDKがありますから、最初から悩む必要はなかったですね。まあ、それとは別に有償化の顛末を知識として持っておくのは有用ではあるでしょうが。
folate

2019/04/16 23:02

おっしゃる通りだと思います。 とても難しい問題で、私一人での理解は難しかったと思います。 ここで知ることができ、良かったです。 回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問