OpenJDKは商用利用しても無料です。Eclipse Temurin、Amazon Corretto、Microsoft Build of OpenJDKなどのOpenJDKビルドはGPLv2+Classpath Exceptionで配布されており、本番環境で使ってもライセンス費用はかかりません。ライセンス費用が発生し得るのは、Oracleが別ライセンスで配る「Oracle JDK」の更新版を、無償用途や既存の利用権の対象外で本番利用する場合です。OpenJDKビルドでも、任意の有償サポートには費用がかかります。この記事では、2026年10月14日時点の一次情報(Oracle・Adoptium・AWS・Microsoftの公式ページと価格表)をもとに、無料で使える範囲、Oracle JDKが有償になる条件と料金、社内のJDKを見分ける手順、ディストリビューションごとのサポート期限を整理します。
まとめ:OpenJDKは商用でも無料、有償になり得るのはOracle JDKの更新版
- OpenJDKビルドは商用・本番・再配布とも無料で、期限もない。Classpath Exceptionにより、自社アプリのソースを公開する義務も生じない。
- Oracle JDK 21は2026年10月20日のCPUからOTNライセンスに変わる予定。それ以降の21の更新版を一般的な業務本番環境で使うには、OTNの無償用途や既存の利用権に該当しない限り、有償契約が必要になる。無償で更新を受け続けるLTSの移行先はOracle JDK 25(2028年9月までの更新予定)。非LTSもNFTCで提供され、過去にNFTCで取得した更新版の利用権も、更新提供期間の終了だけでは失われない。
- サブスクリプションは「Javaを使う人数」ではなく全従業員数で課金。2026年10月8日付の価格表では、従業員1〜10人が年100ドル、101〜500人が年1万ドル、3,000人以上は1人月10.50ドルから。委託先・外注先の従業員も数に入る。
- 判定は
java -versionの全出力とライセンス文書を組み合わせる。今回比較した3ビルドでは、Oracle JDKが「java version」、OpenJDKビルドが「openjdk version」で始まる。ベンダー名が「Oracle Corporation」でもOpenJDKビルドの場合がある。 - jdk.java.netのOracle版OpenJDKは本番の長期運用に向かない。LTSの25でも25.0.2(2026年1月)で更新が止まっている。長く使うならTemurinかCorrettoなど、LTSの更新を出し続けるビルドを選ぶ。
OpenJDKとは:Java SEのオープンソース実装と配布物の関係
OpenJDKは、Java SE(Java Platform, Standard Edition)のオープンソース実装であり、Java SEの参照実装でもあります。ソースコードはGitHubのopenjdk組織で公開され、新しい版はOpenJDKのJDKプロジェクトとして開発されます。
実際に使うのは、このソースを誰かがビルドした配布物(ディストリビューション)です。AdoptiumのTemurin、AmazonのCorretto、MicrosoftのMicrosoft Build of OpenJDK、Oracle自身のOpenJDKビルドなどがあり、Oracle JDKも同じソースから作られています。同じJava SEバージョンに準拠するビルドは標準の言語仕様とAPIを共有しますが、独自パッチ、対応OS・CPU、同梱機能、ライセンス、更新期間には違いがあります。JDK・JRE・JVMといった用語から整理したい場合はJava SEとは?JDK・JRE・JVMの違いとOracle Java/OpenJDKのライセンスを最新版で解説、JVMの仕組みはJava仮想マシン(JVM)とは?仕組み・メモリ構成・JITを実機の出力で解説を参照してください。
OpenJDKのライセンス:GPLv2+Classpath Exceptionで無料になる範囲
OpenJDKのビルドは、GPLv2にClasspath Exceptionを加えたライセンスで配布されます。条文はOpenJDKのGPLv2+Classpath Exception全文で読めます。AmazonはCorretto FAQで「GPLv2 with CPEで配布し、利用にも配布にも料金を取らない」と書き、Microsoftもサポートポリシーで四半期ごとの更新を「誰でも無料で使える」と明記しています。
自社アプリのソース公開義務が生じない理由
GPLv2だけなら、GPLのライブラリとリンクしたプログラム全体にソース公開の義務が及び得ます。Classpath Exceptionはこれを外す例外条項で、原文は「Linking this library statically or dynamically with other modules is making a combined work based on this library」に続けて、独立したモジュールとリンクした実行形式を、そのモジュールのライセンスで配布してよいと定めています。
そのため、自社のアプリをOpenJDK上で動かしても、社外に販売・配布しても、アプリのソースを公開する必要はありません。社内システムでの利用、SaaSとしての提供、受託開発の納品のいずれも無料です。GPL以外も含めたOSSライセンスごとの義務の違いはオープンソースライセンスとは?主要9種の商用利用可否と義務を条項番号で解説で条項単位に整理しています。
JDKを同梱して配布するときに残るGPLv2の義務
無料であることと、義務が何もないことは別です。インストーラーにJDKやjlinkで切り出したランタイムを同梱して顧客へ配る場合、同梱したJDK部分はGPLv2のままです。GPLv2第3条に従い、バイナリには完全な対応ソースを添えるか、少なくとも3年間、第三者に実費以下で対応ソースを提供する書面を付けます。ダウンロード配布では、同じ場所から対応ソースも取得できるようにする方法があります。OpenJDKビルドのlegalフォルダにあるLICENSE・ASSEMBLY_EXCEPTION・ADDITIONAL_LICENSE_INFOは消さずに同梱します。JDKのGPLv2対象部分を改変して社外へ配布する場合は、改変を含む対応ソースをGPLv2の条件に従って提供します。社内だけで改変・利用する場合に、一般公開の義務が生じるわけではありません。
Oracle JDKが有償になる条件:NFTC・OTN・2026年10月の切り替え
OracleはOpenJDKビルドとは別に、自社ブランドの「Oracle JDK」を配っています。Oracle JDKのライセンスは、版と更新の時期によってNFTC(無償)とOTN(用途限定で無償)が切り替わります。有償になるかどうかは「どの版の、いつの更新を、何に使っているか」で決まります。
NFTCで無償の範囲と、同梱販売の禁止
Oracle No-Fee Terms and Conditions(NFTC)は、商用・本番を含めて無償で使えるライセンスです。Oracle JDKのFAQによると、jlinkで作ったランタイムも対象で、第三者に使わせるホスティング(SaaS)は社内業務での利用とみなされ、サービスに料金を付けてかまいません。
注意が要るのは配布です。NFTCの条文は再配布を認める一方で、「ライセンシーにその配布やプログラムの使用に関する料金を請求しない」ことを条件にしています。Oracle JDKを同梱したパッケージ製品を有償で販売するのは、NFTCの範囲を外れます。製品に同梱するJDKは、最初からOpenJDKビルドにしておくのが安全です。
Oracle JDK 21のOTN移行予定:2026年10月20日のCPU
NFTCが無償なのは、次のLTSが出てから約1年後までに出た更新に限られます。Oracle Java SE Support Roadmap(2026年9月15日更新)は、Oracle JDK 21について「2026年10月のCritical Patch Update(CPU)から、更新版をOTNライセンスで提供する予定」と書いています。OracleのCritical Patch Updatesのページに載っている次回のCPUは2026年10月20日です。
| Oracle JDK | NFTC(無償)の更新 | OTNに移る更新 |
|---|---|---|
| 8・11 | なし | 現行の更新はOTN |
| 17 | 17.0.12まで | 17.0.13(2024年10月)以降 |
| 21 | 2026年9月まで | 2026年10月20日のCPU以降 |
| 25 | 2028年9月まで | 2028年10月以降の予定 |
OTNライセンスで無償なのは、個人利用、開発・テスト・試作・デモ、Oracleが承認した製品での利用、Oracle Cloud Infrastructure上での利用などに限られます。これらに当たらず既存の契約もない本番利用でOTN期間の更新を当て続けるには、Java SE Universal Subscriptionなどの有償契約が必要です。Oracle JDK 21をNFTCのまま使い続けたい場合、ロードマップは「Oracle JDK 25以降へ上げる」ことを求めています。21から25へ上げるときに止まりやすい箇所はJava 21と25の違い|正式化した新機能・サポート期限・移行で止まる箇所を実機で比較で検証しています。
Oracle Java 8 JREの8u211以降の無償利用条件
社員のPCに残っているjava.com版のJava 8 JREも見落とされがちです。OracleのJava SE 8のアーカイブでは、2019年1月15日の8u202までが従来のBinary Code License(BCL)で、2019年4月16日の8u211以降はOTNライセンスです。8u211以降のOracle製Java 8で業務アプリを実行する場合は、承認製品での利用などOTNの無償用途や既存契約の対象かを確認し、該当しなければ有償の利用権が必要です。業務アプリがJava 8を要求しているなら、TemurinやCorrettoのJava 8(Temurinは少なくとも2030年12月まで提供予定、Correttoは最終更新予定が2030年10月、EOLが同年12月)へ置き換えます。
Java SE Universal Subscriptionの料金と「従業員」の数え方
OTN期間のOracle JDKを本番で使う場合の契約がOracle Java SE Universal Subscriptionです。課金の単位は、Javaを使っている端末数やユーザー数ではなく、組織の従業員数です。2026年10月8日付のOracle Java SE Universal Subscription Global Price Listで、従業員3,000人未満の組織にはSMB価格という年額の段階制が設けられました。
| 従業員数 | 価格(米ドル) | 購入方法 |
|---|---|---|
| 1〜10人 | 年100 | Oracle Store |
| 11〜100人 | 年1,000 | Oracle Store |
| 101〜500人 | 年10,000 | Oracle Store |
| 501〜2,999人 | 年10,000+500人超1人につき年147.20 | 営業経由 |
| 3,000〜9,999人 | 1人月10.50 | 営業経由 |
| 10,000〜19,999人 | 1人月8.25 | 営業経由 |
| 20,000〜29,999人 | 1人月6.75 | 営業経由 |
| 30,000〜39,999人 | 1人月5.70 | 営業経由 |
| 40,000〜49,999人 | 1人月5.25 | 営業経由 |
| 50,000人以上 | 個別見積もり | 営業経由 |
価格表の計算例では、従業員800人なら10,000ドル+300人×147.20ドルで年54,160ドル、3,000人なら3,000人×10.50ドル×12か月で年378,000ドルです。SMB価格はOracleとの直接取引に限られ、再販経由では買えません。契約は最低1年で、従業員数の帯ごとに実行可能なProcessor数の上限もあるため、価格表の注記まで確認します。
見積もりで間違えやすいのは「従業員」の定義です。価格表は、自社の正社員・パート・臨時従業員に加えて、社内業務を支える代理店・請負業者・外注先・コンサルタントの従業員も含め、「プログラムを使う従業員の数とは関係なく決まる」と定めています。Javaを使うのが情報システム部門の数人でも、全社の人数で契約することになります。Oracle固有機能や認定JDK条件への依存がなければ、OpenJDKビルドへの切り替えで今後のOracle JDKの契約費用を避けられます。既存契約の終了条件と過去の利用状況は別途確認します。
OpenJDKとOracle JDKの違い:ライセンス・更新期限・配布条件の比較
JFR(Java Flight Recorder)など、かつてOracle JDKだけにあった商用機能はJDK 11の時点でOpenJDKに入っており、選ぶ理由は機能ではなくライセンスとサポートに移っています。違いを表にまとめます。
| 比較項目 | OpenJDKビルド | Oracle JDK |
|---|---|---|
| ライセンス | GPLv2+CPE | NFTC→期間後はOTN |
| 本番の商用利用 | 無料・期限なし | NFTC取得版は無料/OTN取得版は用途・契約による |
| 有償製品への同梱 | 可(GPLv2の義務あり) | NFTCでは不可 |
| SaaSでの利用 | 可 | NFTC取得版は可/その他は用途・契約による |
| LTSの更新期限 | 配布元ごとに異なる | 契約者向けに長期 |
| java -version 1行目の例 | openjdk version | java version |
Oracleの有償サポートを社内標準にしている組織、Oracleの製品と組み合わせてサポートを一本化したい組織を除けば、OpenJDKビルドを選ばない理由はほとんどありません。逆にOracle JDKを選ぶなら、NFTCの期限が来る前に次のLTSへ上げる運用(2年ごとのメジャー更新)か、契約のどちらかを最初に決めておく必要があります。
社内のJDKがOracle JDKかを判定する方法
ライセンスの議論より先に、実際に動いているJDKを確かめます。2026年10月14日に、macOS(x86_64)でTemurin 25.0.4.1、jdk.java.netのOracle版OpenJDK 25.0.2、Oracle JDK 25.0.4.1の3つを実行し、見分け方を確認しました。
java -versionの出力と配布元の識別
java -version
3つのビルドの出力は次のとおりです。
# Eclipse Temurin 25.0.4.1
openjdk version "25.0.4.1" 2026-08-18 LTS
OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS, mixed mode)
# jdk.java.net の Oracle版OpenJDK 25.0.2
openjdk version "25.0.2" 2026-01-20
OpenJDK Runtime Environment (build 25.0.2+10-69)
OpenJDK 64-Bit Server VM (build 25.0.2+10-69, mixed mode, sharing)
# Oracle JDK 25.0.4.1
java version "25.0.4.1" 2026-08-18 LTS
Java(TM) SE Runtime Environment (build 25.0.4.1+1-LTS-5)
Java HotSpot(TM) 64-Bit Server VM (build 25.0.4.1+1-LTS-5, mixed mode, sharing)
Oracle JDKは1行目が「java version」、2行目が「Java(TM) SE Runtime Environment」、3行目が「Java HotSpot(TM) 64-Bit Server VM」でした。OpenJDKビルドは1行目が「openjdk version」、2行目が「OpenJDK Runtime Environment」です。ただし、IBM製のJava 8のように1・2行目がOracle JDKと同じ表記になる製品もあるため、3行目のVM名まで読み、最後は次に示すLICENSEファイルで確かめます。
ベンダー名で判定してはいけません。java -XshowSettings:properties -versionでjava.vendorを見ると、Temurinは「Eclipse Adoptium」ですが、Oracle版OpenJDKとOracle JDKはどちらも「Oracle Corporation」でした。releaseファイルのIMPLEMENTORも、この2つは同じ「Oracle Corporation」です。「Oracle製だから有償」と判定すると、GPLのOracle版OpenJDKまで契約対象に数えてしまいます。
LICENSEファイルによる適用ライセンスの確認
JDKを起動しなくても、legal/java.base/LICENSEの先頭でライセンスが分かります。コンテナイメージや停止中のサーバーのディスクを調べるときに使えます。
head -1 "$JAVA_HOME/legal/java.base/LICENSE"
Temurinと Oracle版OpenJDKは「The GNU General Public License (GPL)」で始まり、同じファイルの末尾に"CLASSPATH" EXCEPTION TO THE GPLの条文があります。同じフォルダには、これとは別の例外文書であるASSEMBLY_EXCEPTION(OpenJDK Assembly Exception)も置かれています。Oracle JDK 25は「Your use of this Program is governed by the No-Fee Terms and Conditions」で始まるNFTCの文面で、ASSEMBLY_EXCEPTIONはありませんでした。GPLでもNFTCでもない文面が出たら、OTNなど別のライセンスで入手したものなので、入手経路と契約を確認します。
指定ディレクトリ内のJDK候補を列挙するスクリプト
1台に複数のJDKが入っていて、アプリがJAVA_HOMEやフルパスで別のJDKを指していることがあります。PATH上のjavaだけ見ると見落とすので、見つかったすべてのJDKで版・VM名とライセンス文書を並べます。空白を含むパスでも途中で切れないよう、findの結果を1行ずつ読みます。
#!/bin/sh
# 指定ディレクトリ以下の java 実行ファイルを探し、版・VM名とライセンス文書の1行目を並べる
find "${1:-/}" -type f -path "*/bin/java" 2>/dev/null | while IFS= read -r j; do
home=$(dirname "$(dirname "$j")")
echo "== $home"
"$j" -version 2>&1 | head -3
license="$home/legal/java.base/LICENSE"
[ -r "$license" ] || license="$home/LICENSE"
if [ -r "$license" ]; then
printf 'LICENSE: %s\n' "$license"
head -1 "$license"
else
printf '%s\n' 'LICENSE未確認:配布パッケージの文書を確認してください'
fi
done
引数に調べたいディレクトリ(例:/optや/usr/lib/jvm)を渡すと、その配下だけを調べます。Oracle JDKが見つかったら、そのパスを使っているアプリと、最後に当てた更新の版を記録します。Oracle JDK 21で2026年10月20日以降の更新を当てた場合や、Oracle JDK 8・11・17の現行の更新を本番で動かしている場合は、契約するかOpenJDKビルドへ切り替えるかを決めます。
OpenJDKディストリビューションの選び方:Temurin・Corretto・Microsoft・Oracle版
無料で商用利用できる主なディストリビューションは次のとおりです。いずれもGPLv2+CPEで配布され、有償サポートは任意です。
| ディストリビューション | 提供元 | LTSの無償更新 | 有償サポート |
|---|---|---|---|
| Eclipse Temurin | Adoptium | 8・11・17・21・25 | 各社経由 |
| Amazon Corretto | Amazon | 8・11・17・21・25 | AWSサポートプラン |
| MS Build of OpenJDK | Microsoft | 11・17・21・25 | Azure顧客のみ |
| Azul Zulu | Azul | 8・11・17・21・25 | Azul Core |
| Oracle版OpenJDK | Oracle | なし(最新版のみ) | なし |
jdk.java.netのOracle版OpenJDKの更新期間
「Oracleが出しているGPL版なら安心」と考えてjdk.java.netのビルドを選ぶと、更新が止まります。jdk.java.netが配るのは現行のフィーチャーリリースだけで、JDK 25のページには「JDK 25 has been superseded」と表示され、旧版は本番での利用を勧めないアーカイブへ移っています。アーカイブにある25の更新版は25.0.1と25.0.2(2026年1月20日)までです。同じ25でも、Temurinは2026年8月に25.0.4.1を出し、10月に25.0.5を予定しています。
Oracle版OpenJDKは、半年ごとのメジャー更新と検証を継続できる用途の候補です。本番採用では、次版への移行を更新提供期間内に完了できる運用体制を条件にします。本番で同じLTSを数年使うなら、LTSの更新を出し続けるTemurinやCorrettoを選びます。
稼働環境別の選び方と、有償サポートを足す条件
特定のクラウドに寄らない用途なら、Eclipse Foundation傘下のAdoptiumが出すTemurinが基準になります。AWS上ならCorretto、Azure上ならMicrosoft Build of OpenJDKにすると、クラウド側のサポート窓口とイメージの更新がそろいます。MicrosoftはJava 8を自社ビルドとしては出しておらず、Azure上のJava 8もTemurinのビルドで動かし、Azure外ではAdoptiumから入手するよう案内しています。開発者の手元で複数の版を切り替えるなら、SDKMAN!の使い方|Javaのインストール・切り替えと.sdkmanrc、Windows・macOSの注意点のようなバージョン管理ツールを使うと、ディストリビューション名を指定して入れられます。
有償サポートを足すべきなのは、障害時の一次切り分けや脆弱性対応の期限を契約で求められる場合と、無償更新の期限を過ぎたLTSを延命する場合です。それ以外は無償ビルドで始め、要件が出た範囲だけ契約を足します。「とりあえずOracle JDKを契約しておく」選び方は、全従業員分の費用を払うことになるため避けます。脆弱性対応の速さを判断材料にする場合は、Java脆弱性の一覧と対策|CVE-2024-20932・20918・20919をCVSSだけで判断しないでCPUの読み方を確認してください。
Oracle JDKからOpenJDKへの移行手順
同じメジャーバージョンで標準APIを使うアプリは移行候補になります。ただし、Oracle JRE 8のJava Web Startなど固有機能への依存や、業務ソフトの認定JDK条件がある場合は、単純な差し替えでは移行できません。手順は、同じメジャーバージョンのOpenJDKビルドを入れる、JAVA_HOMEとPATHを向け直す、テストを流す、Oracle JDKを削除する、の順です。
Windows・LinuxでのJDK導入と参照先の変更
Windowsはwingetで入れられます。TemurinのパッケージIDはメジャーバージョンとJDK・JREの別で分かれています(例:EclipseAdoptium.Temurin.25.JDK)。
# Temurinのパッケージ一覧を確認する
winget search EclipseAdoptium.Temurin
# Java 25のJDKを入れる
winget install --id EclipseAdoptium.Temurin.25.JDK -e
# 入れ替え後、1行目が openjdk version になったか確認する
java -version
Linuxはディストリビューションのパッケージで入れられます。UbuntuやDebianならopenjdk-21-jdk、RHEL系ならjava-21-openjdk-develのように、パッケージ名にバージョンが入ります。入れたあとは、systemdのユニットファイルや起動スクリプトのJAVA_HOMEがOracle JDKのパスを指したままになっていないかを確認し、前の章のスクリプトで検出候補を再確認します。未検出でも不存在は保証できないため、探索権限、シンボリックリンク先、コンテナ内のJDK、稼働アプリの参照先も確認します。
コンテナの移行先:eclipse-temurinとamazoncorretto
Docker Hubの公式イメージopenjdkには、2026年10月14日時点で25タグがありません(Docker Hub APIで404)。eclipse-temurin:25-jreとamazoncorretto:25は存在します。実行だけならJREイメージで足ります。
FROM eclipse-temurin:25-jre
WORKDIR /app
COPY build/libs/app.jar /app/app.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
メジャーバージョンも同時に上げる場合は、ライセンスの切り替えとは別の作業として、削除されたAPIやライブラリの対応状況を先に確認します。Spring Bootのイメージの作り方はSpring BootのDockerデプロイ手順|イメージ作成3方式・Compose・本番配布を4.1.1で検証、Java 8から上げる判断はJava近代化の進め方|Java 8をJava 25へ上げる判断基準と4ステップ、移行計画の立て方はJavaマイグレーションの進め方|JDK 8→21/25の手順とSpring Boot・Jakarta移行で扱っています。
台数が多い、古いアプリケーションサーバーと組み合わさっている、テストが整っていないといった理由で切り替えが進まない場合は、一創のシステムマイグレーション・リプレイス支援で、JDKの棚卸しからバージョンアップ、動作確認までをまとめて請け負っています。
OpenJDKのバージョンとLTSのサポート期限(2026年10月時点)
OpenJDKは6か月ごとに新しい版が出ます。LTS(長期サポート)の指定と提供期間は配布元が決め、Oracleは現在、2年ごとの版をLTSにする方針です。2026年10月時点の最新はJDK 27(2026年9月15日GA・非LTS)、最新のLTSはJava 25で、次のLTSはJava 29(2027年9月予定)です。商用システムはLTSから選びます。各社の期限を並べると次のとおりです。
| 版 | Oracle Premier | Oracle Extended | Temurin | Corretto | Microsoft |
|---|---|---|---|---|---|
| Java 8 | 2022年3月終了 | 2030年12月 | 2030年12月以降 | 2030年12月 | 提供なし |
| Java 11 | 2023年9月終了 | 2032年1月 | 2027年10月以降 | 2032年1月 | 2027年9月 |
| Java 17 | 2026年9月終了 | 2029年9月 | 2027年10月以降 | 2029年10月 | 2027年9月 |
| Java 21 | 2028年9月 | 2031年9月 | 2029年12月以降 | 2030年10月 | 2028年9月 |
| Java 25 | 2030年9月 | 2033年9月 | 2031年9月以降 | 2032年10月 | 2030年9月 |
出典はOracle Java SE Support Roadmap、Adoptium Support(End of Availability)、Corretto FAQ(End of Life)、Microsoft Build of OpenJDKのサポートポリシー(Earliest end-of-support date)です。Oracleの期日は有償契約者向けで、17・21・25には「その日以降」の注記があります。Temurinは最短の提供期限、Microsoftは最も早いサポート終了日、CorrettoはEOLを示しており、最終更新の予定月とは区別します。
読み方の要点は2つあります。Java 11と17は、Temurin・Microsoftが示す最短の提供・サポート期限が2027年9〜10月で、Corretto(11は2032年1月、17は2029年10月)より短い期日です。11や17を2028年以降も使う計画なら、Correttoへ寄せるか、Java 21・25へ上げる予定を今から組みます。もう1つは非LTSで、Oracle JDKのサポート期限は26が2026年9月、27が2027年3月です。配布元により異なり、CorrettoのEOLは26が2026年10月、27が2027年4月です。非LTSを本番に入れると半年ごとに上げ続けることになります。JDK 27の変更点はJava 27とは|非LTSの半年運用とG1・オブジェクトヘッダ既定化の影響、JDK 26はJava 26(JDK 26)の新機能10個のJEPと現在地|サポート終了後の移行先と実機で確かめた挙動にまとめています。
OpenJDKの商用利用に関するよくある質問
OpenJDKは商用利用で本当に無料ですか?
無料です。OpenJDKのビルドはGPLv2+Classpath Exceptionで配布され、社内システム、SaaS、パッケージ製品への同梱のいずれにもライセンス費用はかかりません。同梱して配布する場合は、JDK部分のライセンス文書を残し、ソースを入手できるようにするGPLv2の義務があります。費用が発生するのは、任意の有償サポートを買う場合と、OTN期間のOracle JDKを本番で使う場合です。
Eclipse Temurinは商用利用できますか?
できます。TemurinはEclipse Foundation傘下のAdoptiumが出すOpenJDKビルドで、商用・本番でも無料です。Java 8・11・17・21・25の更新を出しており、Java 25は少なくとも2031年9月、Java 21は少なくとも2029年12月まで提供する予定です。Docker Hubの公式イメージeclipse-temurinも同じビルドです。
Microsoft Build of OpenJDKは商用利用できますか?
できます。MicrosoftはGPLv2+CPEで配布し、四半期ごとの更新を誰でも無料で使えるとしています。Azureの外で使ってもかまいません。有償サポートは、有効なAzureサポートプランを持つ顧客が、Azure、Azure Stackのサービス、またはAzure Arcクラスターに展開するJavaワークロードを対象とします。提供しているのはJava 11・17・21・25で、Java 8はTemurinのビルドを使うよう案内しています。
Oracle Javaの使用は禁止されていますか?
禁止されてはいません。Oracle JDK 25はNFTCにより、2028年9月までの更新を商用・本番で無償で使えます。問題になるのは、OTNライセンスに移った更新版(Oracle JDK 8・11・17の現行の更新と、2026年10月20日以降のOracle JDK 21の更新)を、OTNで認められる無償用途や既存契約の対象外で、必要な利用権を得ずに使うことです。社内でOracle JDKの利用を制限する場合は、承認するOpenJDKビルドと更新手順を定めると、ライセンス管理の対象を整理できます。
OpenJDK 17や8のサポート期限はいつまでですか?
配布元によって違います。Java 17は、Temurinが少なくとも2027年10月、Correttoが2029年10月、Microsoftが2027年9月まで、OracleはExtended Supportとして2029年9月までです。Java 8は、Temurinが少なくとも2030年12月まで提供予定で、Correttoは最終更新予定が2030年10月、EOLが同年12月です。OracleのExtended Supportも2030年12月までです。利用中のディストリビューションの公式ページで、運用期間が期日を超えないかを確認してください。