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

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

ただいまの
回答率

90.51%

  • Java

    15822questions

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

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

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 1,641

folate

score 4

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

質問

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

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

追記

Webで調べたのか

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

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

謝罪

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2019/04/06 06:05

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

    キャンセル

  • 退会済みユーザー

    2019/04/06 11:51

    複数のユーザーから「プログラミングに関係のない質問」という意見がありました
    teratailでは、プログラミングに関して困っていることがないと思われる質問を推奨していません。
    「質問を編集する」ボタンから編集を行い、具体的に困っている理由や解決したいことを明確に記入していただくと、回答が得られやすくなります。

  • len_souko

    2019/04/06 11:52

    https://teratail.com/help/question-tips
    1. 質問をする前に心がけてほしいこと
    1-1. teratailはサポートセンターではなく、思考するエンジニアの為のQ&Aコミュニティです

    キャンセル

  • len_souko

    2019/04/06 11:54

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

    キャンセル

回答 5

checkベストアンサー

+6

長すぎるので先に結論を書いておきます。なお、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/06 14:03

    不適切な質問で本当に申し訳ありません。
    そして、親切な回答、本当にありがとうございました。

    次回からはサイトにあった質問をするよう心がけます。

    キャンセル

  • 2019/04/06 18:37

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

    キャンセル

  • 2019/04/06 19:09

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

    キャンセル

  • 2019/04/06 19: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ビルド』」であると主張する根拠は何でしょうか?全く同じものをビルドしたのに、なぜ中身に違いが出てくるのでしょうか?

    キャンセル

  • 2019/04/06 19: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)."
    という文がそれを示していると私は考えました。それは証明にならないとお考えになるのであれば、見解の相違ということになりますので、これ以上の議論は避けたく思います。

    キャンセル

  • 2019/04/06 20:10

    そうですね、見解の相違ですね。ただ、私としてはこの違いは小さくない問題です。

    私事ですが、私の所のあるシステムの更新で、Javaの有償ライセンスの関係で、既存のプライベートクラウドに載せるのでは無く、全て物理サーバーにせざるを得ないと言うことになりました。OpenJDKが同じものであり、全く一緒であるというのであれば、安くするためにJavaはOpenJDKで提案しろと言えるのですが、同じであるとは言えないからこそ、向こうの提案である有償のJavaを使用することを飲まざるをえませんでした。他にも既存のシステムでJavaを使っている物については、どう対応するのかを開発元に全て問い合わせをするようにしたのですが、AdoptOpenJDKに変えますと言ったところでさえ、検証に時間がかかっているのでしばらく待ってくださいという始末です。その人達に、同じなんだから何も検証必要ないだろう、早くしろ、なんて私は言えません。

    Java有償化の話はよくわかっていない営業も多いのですが、後ほど高額なライセンス費用が請求されることだけは避けなければなりません。かといって、ライセンス費用が高いからとOpenJDKを使ったら動かないなんてことも避けなければなりません。ビジネスとしては楽観視できるような話では全くありません。

    キャンセル

  • 2019/04/08 23:40

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

    キャンセル

+1

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/06 14:06 編集

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

    キャンセル

+1

なぜ有料になるのか

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/06 14:05

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

    キャンセル

+1

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

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


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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/13 00:50

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

    キャンセル

  • 2019/04/17 08:02

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

    キャンセル

同じタグがついた質問を見る

  • Java

    15822questions

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