Java Development Kit

Java Development Kit (JDK) は、プログラミング言語Javaを使ってJavaアプリケーションおよびその他のソフトウェアコンポーネントを構築するためのソフトウェア開発キット (SDK) および開発環境であるJava SE Development Kit 13- - Downloads。現在、活発に開発されているのは OpenJDK およびそのフォークであり、2018年9月の Java 11 以降はソースコードは同一だが OpenJDK にサポートを付けたものをオラクル（旧サン・マイクロシステムズ）は Oracle Java SE Development Kit (Oracle JDK) として配布している。

Oracle Java SE Development Kit はLinux、macOS、Windows向けのパッケージが用意されている。OpenJDK は加えてIBM AIXも対応している。Oracle Java SE Development Kit 11まではSolaris向けのパッケージも用意されていたがJava SE Development Kit 11- - Downloads、Java 12と13はOpenJDKのみになりUpdate on Oracle Java on Oracle Solaris | Oracle Solaris Blog、JEP 362にてそれ以降のOpenJDKでのサポートは終了し
、有志によってSolarisサポートが継続している。

JDK に関してオラクルのサポートを受けるには Oracle Java SE Universal Subscription などの有償契約が必要。Oracle Java SE Development Kit は、JDK 17 以降の LTS は、リリース後3年間は無償利用も可能であるが、それ以降は Oracle Java SE Universal Subscription の有償契約が必要。OpenJDK には3年間の制限はない。Oracle Java SE Universal Subscription の日本での2025年9月の価格は1台あたり年間27,900円。Oracle Java SE Universal Subscription: Java SEへの投資を確かなものにするために

2006年11月17日に、サン・マイクロシステムズはJDKをGNU General Public License (GPL) に基づきリリースすると発表し、2007年5月8日にJDKのソースコードをOpenJDKに寄付した。従ってOpenJDKは自由ソフトウェアである。OpenJDKなどの他の実装と区別するため、従来のJDKはSun JDKあるいはOracle JDKとも呼ばれる。

 Java SE以外のエディション 
JavaのAPIセットおよび実行環境 (Java Runtime Environment, JRE) はその用途ごとに、Java Platform, Standard Edition (Java SE)、Java Platform, Enterprise Edition (Java EE)、Java Platform, Micro Edition (Java ME) などのエディション（プロファイル）が用意されているが、Java SE Development KitはJava SE向けの開発に対応する。Java EE向けの開発にはJava EE SDKがJava EE - Downloads: GlassFish and Java EE 8 | Oracle Technology Network | Oracle、Java ME向けの開発にはJava ME SDKがJava ME SDKそれぞれ用意されていた。

なお、Java EE SDK および Java ME SDK は Java 8 が最後のバージョンで開発終了となった。Java EE は Jakarta EE に引き継がれている。

同梱ツール
JDK 25には以下のツールが含まれている。

 jar – アーカイバで、関連するクラスライブラリを単一のJARファイルにパッケージする。このツールはJARファイルを管理するのにも役に立つ。
 jarsigner
 java – Javaアプリケーション用のローダ。このツールはインタプリタで、javacコンパイラにより生成されたクラスファイルを解釈できる。現在では1つのランチャーが開発と配備の両方で使用される。古い配備ランチャーであるjreはもう付属せず、代わりに新しいjavaローダに置き換えられた。
 javac – Javaコンパイラで、ソースコードをJavaバイトコードに変換する。
 javadoc – ドキュメンテーション生成器で、ソースコードのコメントから自動的にドキュメンテーションを生成する。
 javap – クラスファイル逆アセンブラ
 jcmd
 jconsole – Javaモニタリングおよび管理コンソール
 jdb – デバッガ
 jdeprscan
 jdeps
 jfr
 jhsdb
 jinfo – このユーティリティにより起動中のJavaプロセスやクラッシュダンプから設定情報を得る
 jlink
 jmap – このユーティリティはJava用のメモリマップを出力し、指定のプロセスやコアダンプの共有オブジェクトメモリマップやヒープメモリの詳細を表示できる
 jmod
 jnativescan
 jpackage
 jps – Java仮想マシンプロセスステータスツールはターゲットとなるシステム上に取り付けられたHotSpot Java仮想マシンを一覧にする
 jrunscript – Javaコマンドラインスクリプトシェル
 jshell
 jstack – JavaスレッドのJavaスタックトレースを表示するユーティリティ
 jstat – Java仮想マシン静的モニタリングツール
 jstatd – jstatデーモン
 jwebserver
 keytool – キーストアを操作するためのツール
 rmiregistry
 serialver

Windows に限り以下のものが含まれている。
 jabswitch
 jaccessinspector
 jaccesswalker
 javaw
 kinit
 klist
 ktab

以下はかつて含まれていた物。
 appletviewer – このツールはウェブブラウザなしでJavaアプレットを起動しデバッグするために使用される。
 apt – アノテーション処理ツール
 extcheck – JARファイル衝突を検出可能なユーティリティ
 idlj – IDL-to-Javaコンパイラ。このユーティリティは指定されたJava IDLファイルからJavaバインディングを生成する。
 javah – Cヘッダとスタブ生成器で、ネイティブメソッドを書くのに使われる。
 javaws – JNLPアプリケーション用のJava Web Startランチャー
 jhat – Javaヒープ分析ツール（実験用）
 pack200 – JAR圧縮ツール
 policytool – ポリシー作成および管理ツールで、様々なソースからコード用に利用可能であるかどうかのパーミッションを指定することで、Javaランタイム用のポリシーを決定できる。
 VisualVM – いくつかのコマンドラインJDKツールを統合するビジュアルツールで、軽快なパフォーマンスでメモリプロファイリングが可能である。
 wsimport – Webサービス呼び出し用のポータブルなJAX-WSアーティファクトを生成する。
 xjc – Java API for XML Binding (JAXB) APIの一部。XMLスキーマを受けてJavaクラスを生成する。

実験用ツールはJDKの将来のバージョンで利用不可能になるかもしれない。

Java 10までは、JDKには、通常プライベートランタイムと呼ばれる完全なJava Runtime Environment (JRE) も付属していた。JDKが「レギュラー」なJREから分離され余分な内容が含まれているためである。それはJava仮想マシンおよび、国際化と地域化ライブラリやIDLライブラリのような、開発者にのみ役に立つ追加ライブラリと同様に、生産環境として提供されるクラスライブラリの全てから構成される。

JDKのコピーは、Java APIのほとんど全ての部分の利用を説明する広範囲なプログラム例の抜粋も含んでいる。

JDKとSDKの曖昧さ

JDKは、ソフトウェア開発キット（SDK）の拡張サブセットを構成している。オラクルは、JDKをJava SE開発キットを指す用語として使用することを強く推奨している。Java SE SDKは、JDKとセットでも、JDKなしでも利用可能であり、特にJava SE 7 JDKを意味している"Java EE 7 SDK distributions require JDK 7" 。

OpenJDK以外
OpenJDKおよびその派生ソフトウェア（Oracle Java SE Development Kitなど）が広く使われているが、様々なプラットフォームで一般的に利用可能な他のJDKもある。それら全ては基本的なJava仕様に基づいているが、ガベージコレクション、コンパイル方法、そして最適化技術といった明確に指定されていない部分はしばしば異なる。それらを以下に示す。

開発中のもの:
 Eclipse OpenJ9 JDK – AIX、Linux、Windows、MVS、OS/400、Pocket PC、z/OS用


開発が終了したもの:
 Apache Harmony
 AppleのClassic Mac OS用の JVM / JDK
  – Linux用のSun JDKの移植
 GNUプロジェクトのGNU Classpath、GNU Interpreter for Java (GIJ) およびGNU Compiler for Java (GCJ)
 IcedTea
 オラクルの JDK – Windows、Linux、Solaris用

関連項目

 Javaプラットフォーム
 クラスパス

脚注

 注釈 

 出典 

外部リンク

 Javaソフトウェア - オラクル - Oracle 日本 
 OpenJDK 

Category:Java
Category:ソフトウェア開発キット