Definition

Java Development Kit (JDK)

Das Java Development Kit (JDK) bildet die Grundlage, auf der alle Anwendungen aufgebaut werden, die auf die Java-Plattform ausgerichtet sind. Das JDK umfasst eine Vielzahl von Werkzeugen und Dienstprogrammen, die zahlreiche Aufgaben erfüllen. Dazu gehören die Kompilierung von Quellcode in Bytecode, die Paketierung von Anwendungen, das Hochfahren von Java Virtual Machines (JVMs) und die Verwaltung der Laufzeitumgebung (Runtime Environment) von Java-Anwendungen.

Was ist JDK?

Das JDK ist ein Softwarepaket, das eine Vielzahl von Werkzeugen und Dienstprogrammen enthält, die es ermöglichen, Anwendungen zu entwickeln, zu paketieren, zu überwachen und bereitzustellen, die für jede Standard-Java-Plattform erstellt werden können, einschließlich Java Platform, Standard Edition (Java SE); Java Platform, Micro Edition (Java ME) und Java Platform, Enterprise Edition (Java EE).

Die Java-Plattform

In der Vergangenheit wäre es richtig gewesen zu sagen, dass das JDK speziell auf die Programmsprache Java ausgerichtet war. Mit Java 7 wurde jedoch ein spezielles Konstrukt eingeführt, das es für weitere nutzbare Programmiersprachen wie Groovy, Clojure oder Kotlin wesentlich einfacher machte, in Java-Bytecode zu kompilieren und mit Hilfe der Java Runtime Environment (JRE) auszuführen. Infolgedessen umfasst die Java-Plattform, wie sie heute existiert, nicht nur Java, sondern auch eine Vielzahl anderer Programmiersprachen, die die JDK-Werkzeuge verwenden und auf der Java-Laufzeitumgebung ausgeführt werden.

JDK-Komponenten, Werkzeuge und Dienstprogramme

Das bin-Verzeichnis des JDK bietet eine Vielzahl von Funktionen und Werkzeugen, die den Software-Entwicklungsprozess unterstützen. Einige der beliebteren JDK-Dienstprogramme sind

  • javac: Dieses Dienstprogramm wird verwendet, um Java-Quellcode in Java-Bytecode zu kompilieren.
  • rmic: Dieses Dienstprogramm erstellt Skelette (Skeletons) und Stubs zur Verwendung in Remote Method Invocation (RMI).
  • jar: Dieses Komprimierungsprogramm aggregiert eine Vielzahl von Dateien zu einer einzigen Java ARchive (JAR)-Datei. Das jar-Dienstprogramm verwendet einen Standardkomprimierungsalgorithmus, der von den gängigsten Zip-Dienstprogrammen verwendet wird.
  • javadoc: Dieses Dienstprogramm kann die Namen von Klassen und die in einer Klasse enthaltenen Methoden untersuchen und spezielle Anmerkungen verwenden, um eine API-Dokumentation (Application Programming Interface) für Java-Code zu erstellen.
  • wsgen: Hiermit werden verschiedene Artefakte erzeugt, die von der Java-API für XML-Webdienste (JAX-WS) benötigt werden.
  • javap: Dieses Dienstprogramm zerlegt Klassendateien und erzeugt Informationen über die Methoden, Eigenschaften und Attribute einer bestimmten kompilierten Komponente.

Das JDK enthält auch eine Reihe an Tools zur Überprüfung des Laufzeitverhaltens einer JVM, einschließlich Java Mission Control (JMC), Java Flight Recorder (JFR) und VisualVM.

Unterschied zwischen JDK und JVM

Innerhalb des JDK bin-Verzeichnisses gibt es auch ein Dienstprogramm mit dem einfachen Namen java. Dieses Dienstprogramm nimmt jede Java-Anwendung, die eine lauffähige Hauptmethode enthält, und führt sie als Softwareprogramm aus. Wenn der Quellcode einer Java-Anwendung kompiliert wird, wird er zu Bytecode kompiliert. Bytecode ist ein Vermittler zwischen Java-Quellcode und Low-Level-Maschinencode. Wenn das Java-Dienstprogramm aufgerufen wird, wird eine JVM erstellt, die einen Just-in-Time (JIT)-Compiler verwendet, um Bytecode in Maschinencode umzuwandeln. Diese on-the-fly-Konvertierung von Java-Bytecode in Low-Level-Computerbefehle ist essentiell, um eine Java-Anwendung plattformübergreifend und hardware-unabhängig zu machen.

Im Vergleich: JDK vs. JRE

Beim Herunterladen und Installieren von Java gibt es zwei mögliche Optionen. Die erste Möglichkeit besteht im Herunterladen und Installieren des JRE, die zweite im Herunterladen und Installieren des JDK. Jedes in Java geschriebene Programm, das außer dem Standardsatz von Java-Bibliotheken und einer einfachen Ausführungsumgebung keine zusätzlichen Funktionen benötigt, wird auf der von der JRE bereitgestellten JVM erfolgreich ausgeführt. Wenn jedoch zusätzliche Funktionen, wie die Notwendigkeit, den Java-Quellcode on the fly zu kompilieren oder ein Authentifizierungszertifikat zu generieren, erforderlich sind, dann wäre das JDK erforderlich. Das JDK enthält eine eigene JRE, bietet aber über die grundlegenden Funktionen der JRE hinaus eine Vielzahl zusätzlicher Funktionen.

Zu den Produkten, die die Installation des JDK und nicht der JRE erfordern, gehören Jenkins, Maven, IBM WebSphere, JMeter, Tomcat und Apache Karaf.

How to install the JDK

Erfahren Sie hier, wie Sie Java und das JDK installieren

Java SE und JDK

Das JDK ist mit allen Bibliotheken ausgestattet, die von Java SE definiert werden. Die Standard-APIs umfassen Pakete für Dienstprogramme, Netzwerke, Input/Output (I/O), Kryptographie und XML-Verarbeitung. Das JDK umfasst auch die SE-Unterstützung für die Entwicklung von Benutzerschnittstellen (UI) mit Abstract Window Toolkit (AWT), Swing- und JavaFX-Paketen.

JDK-Bibliotheken

Das JDK enthält jedoch keine Unterstützung für Komponenten wie Servlets, Java ServerPages (JSP) und Enterprise JavaBeans (EJB). Diese Komponenten sind Teil der Java EE-Plattform, die auf Java SE aufbaut. Ebenso hat das JDK keine inhärente Unterstützung für die Entwicklung von Mikrogeräten mit Java ME, obwohl Java ME auf allen Funktionen und Werkzeugen, die durch das JDK zur Verfügung gestellt werden, aufbaut und diese nutzt. Das JDK stellt einen Kernsatz von Bibliotheken, Dienstprogrammen und Werkzeugen dar, die Java-Entwickler verwenden können. Nachfolgende APIs, Plattformen und Frameworks, die mit Java erstellt werden, bauen alle auf den vom JDK bereitgestellten Möglichkeiten auf.

Weitere Sprachen

Zusätzliche Programmiersprachen wie Groovy, Clojure, Scala und Kotlin gewinnen weiter an Popularität. Diese Sprachen laufen alle auf dem JDK, bieten aber verschiedene Funktionen, die die Einschränkungen der Sprache Java überwinden. Beispielsweise bietet Groovy starke Skripting-Funktionen. Scala und Clojure lösen verschiedene Skalierbarkeitsprobleme, auf die das Java-Programm stößt. Und Kotlin vereinfacht die Entwicklung von Android-Anwendungen erheblich. Alle diese Sprachen laufen auf einer JVM und nutzen die Vorteile der Standardbibliotheken und anderer Funktionen, die in die Java-Plattform integriert sind.

Mit einer Verfügbarkeit von über 20 Jahren hat sich das JDK als zuverlässig genug erwiesen, um auch den extremsten Umgebungen und Arbeitslasten standzuhalten, und mit seiner Fähigkeit, neue Sprachen zu unterstützen, die über die eigentliche Java-Sprache hinaus zusätzliche Funktionen hinzufügen, wird das JDK in den kommenden Jahren unweigerlich eine wichtige Rolle in der IT-Welt spielen.

Diese Definition wurde zuletzt im April 2020 aktualisiert

Erfahren Sie mehr über Softwareentwicklung