この記事は更新が必要とされています。
この記事には古い情報が掲載されています。編集の際に新しい情報を記事に反映
Java Development Kit (JDK)開発元オラクル(サン・マイクロシステムズ)
最新版22.0.1 / 2024年4月16日 (33日前) (2024-04-16)
対応OSクロスプラットフォーム
種別ソフトウェア開発キット
ライセンスSun License(大半がGPLに基づく)
公式サイトhttps://www.oracle.com/jp/java/technologies/downloads/
テンプレートを表示
Java Development Kit (JDK) はオラクル(旧サン・マイクロシステムズ)により提供されている、プログラミング言語Javaを使ってJavaアプリケーションおよびその他のソフトウェアコンポーネントを構築するためのソフトウェア開発キット (SDK) および開発環境である[1]。Linux、macOSまたはWindows向けのパッケージがそれぞれ用意されている。JDK 11まではSolaris向けのパッケージも用意されていた[2][注釈 1]。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が[3]、Java ME向けの開発にはJava ME SDKが[4]それぞれ用意されている。
2006年11月17日に、サン・マイクロシステムズはJDKをGNU General Public License (GPL) に基づきリリースすると発表し、2007年5月8日にJDKのソースコードをOpenJDKに寄付した[5]。従ってJDKはフリーソフトウェアである。OpenJDKなどの他の実装と区別するため、従来のJDKはSun JDKあるいはOracle JDKとも呼ばれる。 JDKには主要なコンポーネントとして以下のようなプログラミングツールが含まれる : 実験用ツールはJDKの将来のバージョンで利用不可能になるかもしれない。 JDKには、通常プライベートランタイムと呼ばれる完全なJava Runtime Environment (JRE) も付属する。JDKが「レギュラー」なJREから分離され余分な内容が含まれているためである。それはJava仮想マシンおよび、国際化と地域化ライブラリやIDLライブラリのような、開発者にのみ役に立つ追加ライブラリと同様に、生産環境として提供されるクラスライブラリの全てから構成される。 JDKのコピーは、Java APIのほとんど全ての部分の利用を説明する広範囲なプログラム例の抜粋も含んでいる。 JDKは、ソフトウェア開発キット(SDK)の拡張サブセットを構成している。オラクルは、JDKをJava SE開発キットを指す用語として使用することを強く推奨している[7]。Java SE SDKは、JDKとセットでも、JDKなしでも利用可能であり、特にJava SE 7 JDKを意味している[8]。 本記事で論じられ最も広範囲に利用されるJDKに加えて、Sun JDKソースやそうではない物である、様々なプラットフォームで一般的に利用可能な他のJDKもある。それら全ては基本的なJava仕様に基づいているが、ガベージコレクション、コンパイル方法、そして最適化技術といった明確に指定されていない部分はしばしば異なる。それらを以下に示す。 開発中やメンテナンスモードの状態であるもの:
JDKの内容
appletviewer – このツールはウェブブラウザなしでJavaアプレットを起動しデバッグするために使用される。
apt – アノテーション処理ツール[6]
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とSDKの曖昧さ
他のJDK
OpenJDK / IcedTea
GNUプロジェクトのGNU Classpath、GNU Interpreter for Java
Aicas
IBM J9 JDK – AIX、Linux、Windows、MVS、OS/400、Pocket PC、z/OS用[9]
オラクルのJRockit(英語版) JDK – Windows、Linux、Solaris用[10]
メンテナンスが終了したもの:
Apache Harmony
AppleのClassic Mac OS用のMac OS Runtime for Java(英語版) JVM / JDK[11]