ジャバ‐かいはつキット【Java開発キット】
読み方:じゃばかいはつきっと
JDK
読み方:ジェーディーケー
別名:Java開発キット
JDKとは、プログラミング言語「Java」のソフトウェア開発キットの呼び名である。かつてはSun Microsystemsが配布しており、同社がOracleに買収されて以降はOracleが配布している。
JDKにはコンパイラやデバッガをはじめとする開発者向けの環境がひととおり含まれている。いわゆるJava用のソフトウェア開発キット(SDK)であり、その意味でJava用のSDKがJDKであるという言い方をし得る。ただしJDKにはSDKには本来含まれない構成要素も含まれており、厳密な意味でJDKがSDK(のJava版)といえるか否かという点には議論の余地が残る。
JDKは開発者向けのツール群である。Javaの実行環境のみ含んだ製品はJREと呼ばれる。
JDKの過去のバージョンは「Oracle Java Archive」のウェブページ上でリスト化されており、一覧およびダウンロードが可能である。ただし旧バージョンに対してはセキュリティパッチのアップデート等は行われておらず、現行の製品に対しての旧バージョンJDKの使用は推奨されない。
参照リンク
Oracle Java Archive
Javaの古いバージョンおよび関連ドキュメントはどこで入手できますか。 - Java
Java Development Kit
![]() |
開発元 | オラクル(サン・マイクロシステムズ) |
---|---|
最新版 |
24.0.1
/ 2025年4月15日 |
対応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には主要なコンポーネントとして以下のようなプログラミングツールが含まれる :
- 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仕様に基づいているが、ガベージコレクション、コンパイル方法、そして最適化技術といった明確に指定されていない部分はしばしば異なる。それらを以下に示す。
開発中やメンテナンスモードの状態であるもの:
- 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用[9]
- オラクルのJRockit JDK – Windows、Linux、Solaris用[10]
メンテナンスが終了したもの:
- Apache Harmony
- AppleのClassic Mac OS用のMac OS Runtime for Java JVM / JDK[11]
- Blackdown Java – Linux用のSun JDKの移植[12][13]
関連項目
脚注
注釈
- ^ 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. 2013年7月10日閲覧。
- ^ "Java EE 7 SDK distributions require JDK 7" “Java Platform, Enterprise Edition 7 SDK - Installation Instructions”. Installing the Software. Oracle. 2013年7月10日閲覧。
- ^ “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開発キット (JDK)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/13 16:15 UTC 版)
「Java」の記事における「Java開発キット (JDK)」の解説
詳細は「Java Development Kit」を参照 Java開発キット (Java Development Kit) は、Javaプログラムを開発するために必要なソフトウェアである。Java実行環境も内包している。Javaコンパイラなどの基本開発ツール、各種開発サポートツール、Java APIで構成されている。前述のエディションによって開発ツール内容とAPI構成に違いがある。Java開発キットの呼称はこれまでに何度か変更されている。 J2SE 1.2.2_004 までは、JDK (Java Development Kit) と呼んでいた。 J2SE 1.4 までは、Java2 SDK (Java2 Software Development Kit) と呼んでいた。 J2SE 5.0 からは再び、JDK (Java Development Kit) と呼んだ。 JavaSE 7 からは、エンタープライズ版とマイクロ版では Java SDK (Java Software Development Kit) と呼び、スタンダード版とカード版では JDK (Java Development Kit)と呼ぶようになった。JDKはSDKの拡張サブセット(SDKの一部分+その他)とされる。 Java API APIは、アプリケーション・プログラミング・インタフェースの頭字語であり、Javaクラスライブラリ内部からプログラマに向けて外部公開されているクラス、インタフェース、メソッド、フィールド、定数の集合である。プログラマはこれを用いて各種ソフトウェアの開発を行う。APIは基本的にクラスライブラリの所属に沿って、パッケージ (package) と呼ばれる名前空間で分類されて提供されている。パッケージは各ワードをピリオドで連結して階層化されている。先頭ワードのjavaは開発元提供の純正基礎版を意味する。他に純正拡張版のjavax、任意団体提供のorg、企業提供のcomがある。 java.lang - Java言語の基礎を扱う。 java.io - ファイル入出力など。 java.util - 動的配列と動的連想配列。データ集合の操作。 java.math - 各種計算を扱う。 java.text - 暦、日付、時間、通貨、文字コードなどの国際化と地域化を扱う。 java.net - ソケット通信を扱う。 java.awt - グラフィカル・ユーザーインターフェイスを扱う。 java.applet - アプレット生成用。 java.beans - ソフトウェアコンポーネント作成用。 java.sql - SQLを扱う。 java.rmi - 分散オブジェクトを扱う。 java.security - セキュリティポリシー、ユーザー認証と権限承認、公開鍵暗号方式など。 統合開発環境と開発支援ツール 統合開発環境 (IDE)は、JDKを中核にしてビジュアルエディターやビルドマネジャーなどの様々な開発支援機能を備えたソフトウェアである。JDKのみだと、メモ帳でプログラムを書きコマンドラインでコンパイルしコンソールでデバッグをするという極めて原始的な作業になるが、IDEを使用する事で多機能エディタコーディングとビルド過程の自動化と視覚的なデバッグが可能になる。Java開発用のIDEは様々な企業と任意団体から公開されている。 NetBeans - (サン・マイクロシステムズ→オラクル)オープンソースIDE。NetBeans.org NetBeans.jp。 Eclipse SDK - (IBM→Eclipse財団)オープンソースIDE。Java用IDEの共通基盤存在である。ここからWebSphere Studio、JBuilderなど様々なIDEが派生している。eclipse.org EclipseWiki。 WebSphere Studio -(IBM)商用IDE。Eclipseに有料プラグイン機能を組み合わせたもの。現在はアップデート停止。WebSphere。 IBM Rational(英語版) - (IBM) Rationalブランド商用IDE。WebSphere Studioの後継製品。 JBuilder - (ボーランド→エンバカデロ・テクノロジーズ)商用IDE。JBuilder2007からEclipseベースになっている。JBuilder。 Oracle JDeveloper - (オラクル)Oracle Application Serverと統合されている。2005年6月28日に無料化した。JDeveloper。 Oracle Workshop for WebLogic - (BEAシステムズ→オラクル)WebLogic(英語版)と統合されている。Oracle Workshop。 BlueJ - (サン・マイクロシステムズ、豪ディーキン大学、英ケント大学の共同開発)フリーIDE。BlueJ。 IntelliJ IDEA - (JetBrains) 商用IDE。Android Studioのベースになった。IntelliJ IDEA。 JCreator - (Xinox Software) 商用IDE。JCreator。 Xcode - (Apple)macOSに付属するIDE。 開発サポートツールは、プロジェクト管理、自動ビルド、デバッグ、モニタリングを容易にする。下記の他にも多くの支援ツールが存在する。 Apache Ant - Javaアプリケーションのビルドツール。Apacheソフトウェア財団のプロジェクトによって開発された。コンパイル、バージョン管理システムとの連携、jar、javadoc生成、ファイルのコピー/移動/削除/変換などの一連の処理を自動化して効率的に実行する。make と同種のツールであり、XMLファイルにビルドの規則を記述する。Java 以外の言語によるアプリケーション開発や、アプリケーション開発以外の用途にも使うことができる。 Apache Maven - Javaアプリケーションのプロジェクト管理ツール。Apacheソフトウェア財団のプロジェクトによって開発された。 Gradle - Apache AntやApache Mavenのコンセプトに基づくオープンソースビルド自動化システム。 JUnit - Javaアプリケーションの単体テストフレームワーク。単体テストを自動化する。xUnitの一種である。テスト駆動開発を支援する。
※この「Java開発キット (JDK)」の解説は、「Java」の解説の一部です。
「Java開発キット (JDK)」を含む「Java」の記事については、「Java」の概要を参照ください。
- Java開発キットのページへのリンク