Java Development Kit

Java Development Kit (JDK) はオラクル（旧サン・マイクロシステムズ）により提供されている、プログラミング言語Javaを使ってJavaアプリケーションおよびその他のソフトウェアコンポーネントを構築するためのソフトウェア開発キット (SDK) および開発環境である。Linux、macOSまたはWindows向けのパッケージがそれぞれ用意されている。JDK 11まではSolaris向けのパッケージも用意されていた。JavaのAPIセットおよび実行環境 (Java Runtime Environment, JRE) はその用途ごとに、Java Platform, Standard Edition (Java SE)、Jakarta EE、Java Platform, Micro Edition (Java ME) などのエディション（プロファイル）が用意されているが、JDKはJava SE向けの開発に対応する。Java EE向けの開発にはJava EE SDKが、Java ME向けの開発にはJava ME SDKがそれぞれ用意されている。 2006年11月17日に、サン・マイクロシステムズはJDKをGNU General Public License (GPL) に基づきリリースすると発表し、2007年5月8日にJDKのソースコードをOpenJDKに寄付した。従ってJDKはフリーソフトウェアである。OpenJDKなどの他の実装と区別するため、従来のJDKはSun JDKあるいはOracle JDKとも呼ばれる。 JDKには主要なコンポーネントとして以下のようなプログラミングツールが含まれる : appletviewer – このツールはウェブブラウザなしでJavaアプレットを起動しデバッグするために使用される。 apt – アノテーション処理ツール extcheck – JARファイル衝突を検出可能なユーティリティ idlj – IDL-to-Javaコンパイラ。このユーティリティは指定されたJava IDLファイルからJavaバインディングを生成する。 java – Javaアプリケーション用のローダ。このツールはインタプリタで、javacコンパイラにより生成されたクラスファイルを解釈できる。現在では1つのランチャーが開発と配備の両方で使用される。古い配備ランチャーであるjreはもう付属せず、代わりに新しいjavaローダに置き換えられた。 javac – Javaコンパイラで、ソースコードをJavaバイトコードに変換する。 javadoc – ドキュメンテーション生成器で、ソースコードのコメントから自動的にドキュメンテーションを生成する。 jar – アーカイバで、関連するクラスライブラリを単一のJARファイルにパッケージする。このツールはJARファイルを管理するのにも役に立つ。 javah – Cヘッダとスタブ生成器で、ネイティブメソッドを書くのに使われる。 javap – クラスファイル逆アセンブラ javaws – JNLPアプリケーション用のJava Web Startランチャー JConsole – Javaモニタリングおよび管理コンソール jdb – デバッガ jhat – Javaヒープ分析ツール（実験用） jinfo – このユーティリティにより起動中のJavaプロセスやクラッシュダンプから設定情報を得る（実験用） jmap – このユーティリティはJava用のメモリマップを出力し、指定のプロセスやコアダンプの共有オブジェクトメモリマップやヒープメモリの詳細を表示できる（実験用） jps – Java仮想マシンプロセスステータスツールはターゲットとなるシステム上に取り付けられたHotSpot Java仮想マシンを一覧にする（実験用） jrunscript – Javaコマンドラインスクリプトシェル jstack – JavaスレッドのJavaスタックトレースを表示するユーティリティ jstat – Java仮想マシン静的モニタリングツール（実験用） jstatd – jstatデーモン（実験用） keytool – キーストアを操作するためのツール pack200 – JAR圧縮ツール policytool – ポリシー作成および管理ツールで、様々なソースからコード用に利用可能であるかどうかのパーミッションを指定することで、Javaランタイム用のポリシーを決定できる。 VisualVM – いくつかのコマンドラインJDKツールを統合するビジュアルツールで、軽快なパフォーマンスでメモリプロファイリングが可能である。 wsimport – Webサービス呼び出し用のポータブルなJAX-WSアーティファクトを生成する。 xjc – Java API for XML Binding (JAXB) APIの一部。XMLスキーマを受けてJavaクラスを生成する。 実験用ツールはJDKの将来のバージョンで利用不可能になるかもしれない。 JDKには、通常プライベートランタイムと呼ばれる完全なJava Runtime Environment (JRE) も付属する。JDKが「レギュラー」なJREから分離され余分な内容が含まれているためである。それはJava仮想マシンおよび、国際化と地域化ライブラリやIDLライブラリのような、開発者にのみ役に立つ追加ライブラリと同様に、生産環境として提供されるクラスライブラリの全てから構成される。 JDKのコピーは、Java APIのほとんど全ての部分の利用を説明する広範囲なプログラム例の抜粋も含んでいる。 JDKは、ソフトウェア開発キット（SDK）の拡張サブセットを構成している。オラクルは、JDKをJava SE開発キットを指す用語として使用することを強く推奨している。Java SE SDKは、JDKとセットでも、JDKなしでも利用可能であり、特にJava SE 7 JDKを意味している。 本記事で論じられ最も広範囲に利用されるJDKに加えて、Sun JDKソースやそうではない物である、様々なプラットフォームで一般的に利用可能な他のJDKもある。それら全ては基本的なJava仕様に基づいているが、ガベージコレクション、コンパイル方法、そして最適化技術といった明確に指定されていない部分はしばしば異なる。それらを以下に示す。 開発中やメンテナンスモードの状態であるもの: OpenJDK / IcedTea GNUプロジェクトのGNU Classpath、GNU Interpreter for Java (GIJ) およびGNU Compiler for Java (GCJ) Aicas（英語版） JamaicaVM（英語版） IBM J9 JDK – AIX、Linux、Windows、MVS、OS/400、Pocket PC、z/OS用 オラクルのJRockit（英語版） JDK – Windows、Linux、Solaris用 メンテナンスが終了したもの: Apache Harmony AppleのClassic Mac OS用のMac OS Runtime for Java（英語版） JVM / JDK Blackdown Java（英語版） – Linux用のSun JDKの移植 ポータル FLOSS Javaプラットフォーム クラスパス [脚注の使い方] ^ Java 12以降をSolaris上で利用したい場合、OpenJDKを使用することが推奨されている。Update on Oracle Java on Oracle Solaris | Oracle Solaris Blog ^ Java SE Development Kit 13- - Downloads ^ Java SE Development Kit 11- - Downloads ^ Java EE - Downloads: GlassFish and Java EE 8 | Oracle Technology Network | Oracle ^ Java ME SDK ^ “Sun's May 8th announcement of source code for JDK”. 2012年9月12日時点のオリジナルよりアーカイブ。2013年7月10日閲覧。 ^ “JDK 5.0 Java Annotation Processing Tool (APT)-related APIs & Developer Guides -- from Sun Microsystems”. 2012年8月5日閲覧。 ^ “Java SE Downloads”. Oracle. 10 July 2013閲覧。 ^ "Java EE 7 SDK distributions require JDK 7" “Java Platform, Enterprise Edition 7 SDK - Installation Instructions”. Installing the Software. Oracle. 10 July 2013閲覧。 ^ “developerWorks : IBM developer kits : Downloads”. 2012年8月5日閲覧。 ^ “JRockit Family Download page”. 2012年8月5日閲覧。 ^ “Support at Apple”. 2006年4月20日時点のオリジナルよりアーカイブ。2013年7月10日閲覧。 ^ “Java Linux Contact Information”. 2007年8月19日時点のオリジナルよりアーカイブ。2012年8月5日閲覧。 ^ “Java-Linux Latest Information”. 1996年10月19日時点のオリジナルよりアーカイブ。2012年8月5日閲覧。 ウィキブックスにJava関連の解説書・教科書があります。 Oracle - Java SE （日本語） OpenJDK （英語） GCJ （英語）