Java Development Kit
Java Development Kit (JDK) はオラクル(旧サン・マイクロシステムズ)により提供されている、プログラミング言語Javaを使ってJavaアプリケーションおよびその他のソフトウェアコンポーネントを構築するためのソフトウェア開発キット (SDK) および開発環境である[1]。Linux、macOSまたはWindows向けのパッケージがそれぞれ用意されている。JDK 11まではSolaris向けのパッケージも用意されていた[2][3]。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が[4]、Java ME向けの開発にはJava ME SDKが[5]それぞれ用意されている。
開発元 | オラクル(サン・マイクロシステムズ) |
---|---|
最新版 |
16.0.1
/ 2021年4月20日 |
対応OS | クロスプラットフォーム |
種別 | ソフトウェア開発キット |
ライセンス | Sun License(大半がGPLに基づく) |
公式サイト | https://www.oracle.com/technetwork/jp/java/index.html |
2006年11月17日に、サンはJDKをGNU General Public License (GPL) に基づきリリースすると発表した。サンは実際に2007年5月8日にJDKのソースコードをOpenJDKに寄付した[6]。従ってJDKはフリーソフトウェアである。OpenJDKなどの他の実装と区別するため、従来のJDKはSun JDKあるいはOracle JDKとも呼ばれる。
JDKの内容
JDKには主要なコンポーネントとして以下のようなプログラミングツールが含まれる :
- appletviewer – このツールはウェブブラウザなしでJavaアプレットを起動しデバッグするために使用される。
- apt – アノテーション処理ツール[7]
- 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) の拡張されたサブセットになる。Java SE、EE、そしてMEを実装する最近のリリース[いつ?]に付属している説明書によると、サンはその専門用語に基づいてJDKを認め、JDKはJavaプログラムを書くことと起動することに対して責任があるSDKのサブセットとなる[要出典]。SDKの残りは、アプリケーションサーバ、デバッガ、そしてドキュメンテーションといった余分なソフトウェアを含む。
他の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用[8]
- オラクルのJRockit JDK – Windows、Linux、Solaris用[9]
メンテナンスが終了したもの:
- Apache Harmony
- AppleのClassic Mac OS用のMac OS Runtime for Java JVM / JDK[10]
- Blackdown Java – Linux用のSun JDKの移植[11][12]
関連項目
脚注
- ^ Java SE Development Kit 13- - Downloads
- ^ Java SE Development Kit 11- - Downloads
- ^ Java 12以降をSolaris上で利用したい場合、OpenJDKを使用することが推奨されている。Update on Oracle Java on Oracle Solaris | Oracle Solaris Blog
- ^ 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日閲覧。
- ^ “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日閲覧。