| Java Development Kit | |
|---|---|
| Basisdaten | |
| Entwickler | Oracle |
| Aktuelle Version | 23.0.1[1] (15. Oktober 2024) |
| Betriebssystem | Windows,Solaris,Linux,macOS |
| Programmiersprache | Java, C |
| deutschsprachig | ja |
| www.oracle.com/technetwork/java/javase/ | |
DasJava Development Kit (JDK) des UnternehmensOracle – ehemals vonSun Microsystems –, dasOracle JDK, ist eines der vonJava-Entwicklern meistgenutzten Java-SDKs.
Im November 2006 gab Sun bekannt, dass das JDK unter derGNU General Public License (GPL) veröffentlicht wird.[2] Nun wird eine angepasstefreie Version als ihr nunmehr offizieller Nachfolger unter dem NamenOpenJDK weitergeführt.
Das JDK beinhaltet neben der LaufzeitumgebungJava Runtime Environment (JRE) die folgenden Java-Entwicklungswerkzeuge:
Der Java-Compiler (javac) übersetzt Java-Quellcode in Java-Bytecode.[3] Er liest den Quellcode aus Dateien mit der Endung.java und schreibt den Bytecode in Dateien, die auf.class enden. Die eigentlichen Dateinamen entsprechen dem Namen der zu übersetzenden Klasse. Das Paket, in dem die Klasse liegt, wird auf einen passenden Verzeichnispfad abgebildet. Ein Java-Paket (englischPackage) ist ein eigenerNamensraum. Zum Beispiel kann eine DateiHalloWelt.java die Klasseorg.wikipedia.HalloWelt enthalten. Dann erzeugt der Aufrufjavac org.wikipedia.HalloWelt.java eine DateiHalloWelt.class im Verzeichnis „org/wikipedia“ (bzw. „org\wikipedia“ unterWindows). Der Java-Compiler ist in Java geschrieben undplattformunabhängig, das heißt, der Bytecode des Compilers ist auf unterschiedlichen Plattformen identisch.
Der Java-Debugger (jdb) ist ein Tool zum Debuggen einer laufendenJava-Anwendung.[4] Es werden dabei klassische Debuggerfunktionen unterstützt wie:
Er kann direkt mit einer Laufzeitumgebung gestartet werden oder aber ad-hoc in eine entsprechend konfigurierte Laufzeitumgebung eingeklinkt werden (Remote Debugging).In der Dokumentation wird darauf verwiesen, dass der mitgelieferte Java-Debugger lediglich eine Demonstration der mächtigen Java Debugging API sei. Demzufolge bringen die meisten Java-Entwicklungsumgebungen einen einfacher zu benutzenden Debugger mit.
DasSoftware-Dokumentationswerkzeugjavadoc erzeugt aus dem Java-Quellcode eine Programmdokumentation alsHTML-Hypertext. Dazu werden neben strukturellen Informationen auch Kommentare berücksichtigt.
Das Programmjar erstelltJava-Archive (sogenannteJAR-Dateien). Das sind spezielleZIP-Dateien, in denen Java-Klassen zu verteilbaren Einheiten zusammengefasst werden. Das Werkzeug hat eine ähnliche Kommandozeilensyntax wie das bekannteUnix-Programmtar, ermöglicht jedoch zusätzlich die direkte Manipulation der darin enthaltenen „Manifest-Datei“. In dem JAR-Archiv werden sämtliche.class-Dateien, Grafiken, Textdateien und sonstige Dateien, also beispielsweise alles, was eine Java-Anwendung benötigt, zu einer einzigen Datei zusammengepackt, dem JAR-Archiv.
Das Werkzeugjarsigner ist zumSignieren von Java-Anwendungen und Bibliotheken sowie zur Signatur-Überprüfung im JDK enthalten.
Derappletviewer ist ein sehr einfacherBrowser, der nur die in einem HTML-Dokument enthaltenenJava-Applets jeweils in einem eigenen Fenster anzeigt. Dieses Programm kann verwendet werden, um während derProgrammierung schnell und einfach Applets zu testen.
Derhtmlconverter ist ein interaktives Programm, mit dem die früher üblichen<applet>-Tags in<object>-Tags umgewandelt werden können. Solche Tags werden von Browsern erwartet, die mit dem Java-Plugin ausgestattet sind, das Teil der Java-Laufzeitumgebung JRE ist.
Das Dienstprogrammwsimport wurde im Zuge derJava API for XML Web Services mit dem JDK verteilt. Es dient hauptsächlich dazu,Stubs für Webservice-Clients auf Basis einerWSDL zu generieren.
Ab der Version 1.5 gibt es das Programmjconsole, welches hauptsächlich entwickelt wurde, um die sogenanntenManagement Beans (MBeans) benutzen zu können.[5] Mit Hilfe der JConsole kann man Laufzeitparameter derJVM einsehen und überwachen, u. a.:
Einen Sonderfall stellen dabei die MBeans dar, sie sind Bestandteil derJava Management Extensions. Die JConsole kann sowohl lokale als auch remote laufende JVMs überwachen und steuern. JConsole kann über Plugins erweitert werden.
Ab Version 1.6 wird mit dem JDK das Dienstprogrammjvisualvm[6] verteilt. Dieses nicht direkt unter derÄgide von Sun bzw. Oracle entwickelte Programm stellt einen ähnlichen Funktionsumfang wie die JConsole bereit und ist ebenfalls durch Plugins erweiterbar.
Ab Version 1.7 Patch 40 (7u40) verteilt Oracle das auf Basis vonEclipse RCP eigenentwickelte Dienstprogrammjmc (Java Mission Control) aus[7]. Neben dem klassischen Funktionsumfang von JConsole und JVisualVM war der Flight Recorder[8] eine besondere Neuheit. Dieser ist direkt in die JVM integriert und sammelt bei Bedarf eine Vielzahl an Datenpunkten der laufenden VM (Speicher, Instanzzähler etc.). Lt. Aussage des Herstellers soll dies mit minimalem Geschwindigkeitsverlust stattfinden, sodass anders als bei vielen anderen Lösungen ein Einsatz in produktiver Umgebung möglich sein soll. Die Daten lassen sich entweder sammeln oder aber live mitJava Mission Control auswerten.
Für die folgenden Plattformen wird das JDK 20 von Oracle direkt bereitgestellt[9]:
Für weitere Plattformen wird das JDK üblicherweise Monate bis Jahre später und meist direkt vom Hersteller der Plattform geliefert. So wird beispielsweise inMac OS X das JDK 1.6 direkt vonApple systemnah eingebaut, ab Java 1.7 wird dieses jedoch von Oracle bereitgestellt.[10]
FürSAP-Systeme wird das JDK mittlerweile direkt von SAP bereitgestellt. Derzeit gibt es die Versionen SAP JVM 4.1 (Java 1.4), SAP JVM 5 (Java 5) und SAP JVM 6 (Java 6) für alle von SAP unterstützen Plattformen. Grund hierfür war hauptsächlich die weitere Unterstützung für Java 1.4 (jetzt durch SAP JVM 4.1), welche durch dieSAP Business Suite bis 2020 gewährleistet sein muss.
Das JDK kann sowohl separat als auch im Paket mit der Java-IDENetBeans heruntergeladen werden. Es ist Bestandteil der Implementation derJava Platform, Standard Edition, die unter anderem auch definiert, welcheKlassenbibliotheken dem Entwickler zur Verfügung stehen.