| この記事は更新が必要とされています。
この記事には古い情報が掲載されています。編集の際に新しい情報を記事に 反映させてください。反映後、このタグは除去してください。 (2019年9月) |
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には主要なコンポーネントとして以下のようなプログラミングツールが含まれる :
- 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の将来のバージョンで利用不可能になるかもしれない。
JDKには、通常プライベートランタイムと呼ばれる完全なJava Runtime Environment (JRE) も付属する。JDKが「レギュラー」なJREから分離され余分な内容が含まれているためである。それはJava仮想マシンおよび、国際化と地域化ライブラリやIDLライブラリのような、開発者にのみ役に立つ追加ライブラリと同様に、生産環境として提供されるクラスライブラリの全てから構成される。
JDKのコピーは、Java APIのほとんど全ての部分の利用を説明する広範囲なプログラム例の抜粋も含んでいる。
JDKとSDKの曖昧さ
JDKは、ソフトウェア開発キット(SDK)の拡張サブセットを構成している。オラクルは、JDKをJava SE開発キットを指す用語として使用することを強く推奨している[7]。Java SE SDKは、JDKとセットでも、JDKなしでも利用可能であり、特にJava SE 7 JDKを意味している[8]。
他のJDK
本記事で論じられ最も広範囲に利用されるJDKに加えて、Sun JDKソースやそうではない物である、様々なプラットフォームで一般的に利用可能な他のJDKもある。それら全ては基本的なJava仕様に基づいているが、ガベージコレクション、コンパイル方法、そして最適化技術といった明確に指定されていない部分はしばしば異なる。それらを以下に示す。
開発中やメンテナンスモードの状態であるもの:
メンテナンスが終了したもの:
関連項目
脚注
注釈
出典
外部リンク
ウィキブックスに
Java関連の解説書・教科書があります。
|
---|
プラットフォーム | | |
---|
オラクルのテクノロジー | |
---|
プラットフォーム技術 | |
---|
主なサードパーティ技術 | |
---|
歴史 | |
---|
主要なJVM言語 | |
---|
コミュニティ |
|
---|
|