# Java Development Kit

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. 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.
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.
La implementació principal d'Oracle del JVMS es coneix com HotSpot (màquina virtual).

## Continguts JDK

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 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.

## Referències

* ↑ «OpenJDK FAQ» (en anglès). OpenJDK. Arxivat de l'original el 7 de desembre 2021. [Consulta: 23 octubre 2021].
* ↑ Tyson, Matthew. «What is the JDK? Introduction to the Java Development Kit» (en anglès), 05-12-2023. [Consulta: 28 desembre 2023].
* ↑ «What is Java technology and why do I need it?» (en anglès). [Consulta: 28 desembre 2023].
* ↑ «What is a Java Development Kit (JDK)? Why Do We Need It?» (en anglès americà). [Consulta: 28 desembre 2023].