El Java Development Kit (JDK) és una distribució de Java Technology d'Oracle Corporation. Implementa l'especificació del llenguatge Java (JLS) i l'especificació de la màquina virtual de Java (JVMS) i proporciona l'edició estàndard (SE) de la interfície de programació d'aplicacions de Java (API). És un derivat de l'OpenJDK impulsat per la comunitat que administra Oracle.[1] Proporciona programari per treballar amb aplicacions Java. Exemples de programari inclòs són la màquina virtual, un compilador, eines de control del rendiment, un depurador i altres utilitats que Oracle considera útils per a un programador Java.[2]
Oracle ha llançat la versió actual del programari sota la llicència Oracle No-Fee Terms and Conditions (NFTC). Oracle llança binaris per a l'arquitectura x86-64 per a sistemes operatius basats en Windows, macOS i Linux, i per a l'arquitectura aarch64 per a macOS i Linux. Les versions anteriors admeten el sistema operatiu Oracle Solaris i l'arquitectura SPARC.[3]
La implementació principal d'Oracle del JVMS es coneix com HotSpot (màquina virtual).[4]
El JDK té com a components principals una col·lecció d'eines de programació, que inclouen:
- appletviewer – aquesta eina es pot utilitzar per executar i depurar applets Java sense un navegador web
- apt – l'eina de processament d'anotacions
- extcheck – una utilitat que detecta conflictes de fitxers JAR
- idlj – el compilador d'IDL a Java. Aquesta utilitat genera enllaços Java a partir d'un fitxer IDL Java determinat.
- jabswitch – el pont d'accés de Java. Exposa tecnologies d'assistència als sistemes Microsoft Windows.
- java – el carregador d'aplicacions Java. Aquesta eina és un intèrpret i pot interpretar els fitxers de classe generats pel compilador javac. Ara s'utilitza un sol llançador tant per al desenvolupament com per al desplegament. L'antic llançador de desplegament, jre, A 2009[update] ve amb Sun JDK i, en canvi, s'ha substituït per aquest nou carregador de Java.
- javac – el compilador Java, que converteix el codi font en bytecode Java
- javadoc – el generador de documentació, que genera automàticament documentació a partir dels comentaris del codi font
- jar – l'arxivador, que empaqueta biblioteques de classes relacionades en un únic fitxer JAR. Aquesta eina també ajuda a gestionar els fitxers JAR.
- javafxpackager – eina per empaquetar i signar aplicacions JavaFX
- jarsigner – l'eina de verificació i signatura de pots
- javah – el generador de capçalera i stub C, utilitzat per escriure mètodes natius
- javap – el desmuntador de fitxers de classe
- javaws – el llançador Java Web Start per a aplicacions JNLP
- JConsole – consola de gestió i monitorització de Java
- jdb – el depurador
- jhat – eina d'anàlisi de pila de Java (experimental)
- jinfo – aquesta utilitat obté informació de configuració d'un procés Java en execució o d'un abocament d'error. (experimental)
- jmap Oracle jmap - Mapa de memòria – aquesta utilitat genera el mapa de memòria per a Java i pot imprimir mapes de memòria d'objectes compartits o detalls de memòria d'emmagatzematge d'un procés determinat o abocament de nucli. (experimental)
- jmc – control de missió de Java
- jpackage – una eina per generar paquets d'aplicacions autònoms. (experimental)
- jps – l'eina d'estat del procés de la màquina virtual de Java enumera les màquines virtuals Java (JVM) de HotSpot instrumentades al sistema de destinació. (experimental)
- jrunscript – intèrpret d'ordres de la línia d'ordres de Java.
- jshell - un bucle de lectura-avaluació-impressió, introduït a Java 9.
- jstack – utilitat que imprimeix traces de pila Java de fils Java (experimental)
- jstat – eina de supervisió d'estadístiques de la màquina virtual de Java (experimental)
- jstatd – dimoni jstat (experimental)
- keytool – eina per manipular el magatzem de claus
- pack200 – eina de compressió JAR
- policytool – l'eina de creació i gestió de polítiques, que pot determinar la política per a un temps d'execució de Java, especificant quins permisos estan disponibles per al codi de diverses fonts.
- VisualVM – eina visual que integra diverses eines JDK de línia d'ordres i lleugeres capacitats de rendiment i perfils de memòria (ja no s'inclouen a JDK 9+)
- wsimport – genera artefactes JAX-WS portàtils per invocar un servei web.
- xjc – part de l'API de Java API for XML Binding (JAXB). Accepta un esquema XML i genera classes Java.
El JDK també inclou un entorn d'execució de Java (JRE) complet, normalment anomenat temps d'execució privat, a causa del fet que està separat del JRE "normal" i té contingut addicional. Consisteix en una màquina virtual Java i totes les biblioteques de classes presents a l'entorn de producció, així com biblioteques addicionals només útils per als desenvolupadors, com ara les biblioteques d'internacionalització i les biblioteques IDL.
Les còpies del JDK també inclouen una àmplia selecció de programes d'exemple que demostren l'ús de gairebé totes les parts de l'API de Java.