Kit de Desenvolvemento de Java

O Kit de Desenvolvemento de Java (JDK) é unha distribución de tecnoloxía Java da Oracle Corporation. Implementa a Especificación da Linguaxe Java (JLS) e a Especificación da Máquina Virtual Java (JVMS), ademais de proporcionar a Edición Estándar (SE) da Interface de Programación de Aplicacións Java (API). É un derivado do OpenJDK, impulsado pola comunidade e xestionado por Oracle. Proporciona software para traballar con aplicacións de Java. Algúns exemplos de software incluídos no JDK son a máquina virtual de Java, un compilador, ferramentas de control do rendemento, un depurador, e outras utilidades que Oracle considera útiles para programadores de Java.

Oracle liberou a versión actual do software baixo a licenza de Termos e Condicións sen Taxas de Oracle (NFTC). Liberaron os binarios para a arquitectura x86-64 para os sistemas operativos baseados en Windows, macOS, e Linux, e para a arquitectura aarch64 de macOS e Linux. As versións anteriores soportaban o sistema operativo Oracle Solaris e a arquitectura SPARC.

A implementación principal da JVMS de Oracle coñécese como HotSpot (máquina virtual).

 Contidos do JDK 
O JDK ten como os seus principais compoñentes unha colección de ferramentas de programación, que inclúen:

 appletviewer – Esta ferramenta pódese usar para executar e depurar applets de Java sen un navegador web.
 apt - A ferramenta de procesamento de anotacións.
 extcheck – Unha utilidade que detecta conflitos de ficheiro JAR.
 idlj – O compilador de IDL a Java. Esta utilidade xera ligazóns Java dende un ficheiro IDL de Java dado.
 jabswitch – A Ponte de Acceso a Java. Expón tecnoloxías de asistencia en sistemas Microsoft Windows.
 java – O cargador para aplicacións de Java. Esta ferramenta é un intérprete que pode interpretar os ficheiros de clase xerados polo compilador javac. Con isto úsase un único lanzador tanto para o desenvolvemento como para o despregamento. O antigo lanzador de implementación, jre, xa non inclúe o JDK Sun e, no seu lugar, foi substituído por este novo cargador Java.
 javac – O compilador Java, o cal converte código fonte a bytecode de Java.
 javadoc – O xerador de documentación, o cal automaticamente xera documentación a partir de comentarios do código fonte.
 jar – O arquivador, o cal empaqueta bibliotecas de clases relacionadas nun único ficheiro JAR. Esta ferramenta tamén axuda a xestionar ficheiros JAR.
 javafxpackager – Ferramenta para empaquetar e asinar aplicacións JavaFX.
 jarsigner – A ferramenta de sinatura e verificación de ficheiros JAR.
 javah – O xerador de cabeceiras e stubs de C, usado para escribir métodos nativos.
 javap – O desensamblador de ficheiros de clase.
 javaws – O lanzador de Java Web Start para aplicacións JNLP.
 JConsole – Consola de monitorización e xestión de Java.
 jdb – O depurador.
 jhat – Ferramenta de Análise do Heap de Java. (experimental)
 jinfo – Esta utilidade consegue información de configuración dun proceso de Java en execución ou dun crush dump. (experimental)
 jmap Oracle jmap – Mapa de memoria -  Esta utilidade produce o mapa de memoria para Java e pode imprimir mapas de memoria de obxectos compartidos ou detalles da memoria dinámica dun proceso ou volcado de núcleo determinado. (experimental)
 jmc – Control de Misión de Java.
 jpackage – Unha ferramenta para xerar paquetes de aplicacións autónomos. (experimental)
 jps – A ferramenta de estado do proceso de máquinas virtuais de Java enumera as máquinas virtuais de Java (JVM) HotSpot instrumentadas no sistema obxectivo. (experimental)
 jrunscript –  shell de script de liña de comandos de Java.
 jshell – Un bucle de lectura-avaliación-impresión introducido en Java 9.
 jstack – Utilidade que imprime os rastros da pila dos fíos de Java. (experimental)
 jstat – Ferramenta de monitorización de estatísticas de Máquinas Virtuais de Java. (experimental)
 jstatd – demonio do jstat (experimental)
 keytool – Ferramenta para manipular o keystore (almacén de chaves).
 pack200 – ferramenta de compresión JAR.
 policytool – A ferramenta de creación e xestión de políticas, que pode determinar a política para o tempo de execución de Java, especificando que permisos están dispoñibles para o código de varias fontes.
 VisualVM – Ferramenta visual que integra varias ferramentas JDK por liña de comandos  e capacidades lixeiras de perfís de memoria e rendemento (xa non se inclúe en JDK 9+)
 wsimport – Xera artefactos JAX-WS portátiles para invocar un servizo web.
 xjc – Parte da API de Java para a vinculación XML (JAXB). Acepta un esquema XML e xera clases Java.

As ferramentas experimentais poden non estar dispoñíbeis en versións futuras do JDK.

O JDK vén tamén cunha Contorna de Execución de Java (JRE) completo, normalmente chamada contorna de execución privada, debido a que está separado do JRE "normal" e ten contido adicional. Consiste nunha máquina virtual Java e todas as bibliotecas de clase presentes no ambiente de produción, así como as bibliotecas adicionais útiles só para os desenvolvedores, como as bibliotecas de internacionalización e as bibliotecas de IDL.

Copias do JDK tamén inclúen unha ampla selección de programas de exemplo que mostran o uso de case todas as porcións da API de Java.

 Outros JDKs 
Máis alá do JDK máis amplamente utilizado falado neste artigo, hai outros JDKs xeralmente dispoñíbles para unha variedade de plataformas, algúns dos cales arrancaron desde a fonte do JDK Sun e outros que non. Todos se adhiren ás especificacións básicas de Java, mais a miúdo difiren en áreas explicitamente non especificadas, como a recolección de lixo, estratexias de compilación, e técnicas de optimización. Inclúen:

En modo de desenvolvemento ou de mantemento:

 Azul Sistemas Zing, JDK de baixa latencia para Linux;
 Azul Sistemas / Zulu baseado en OpenJDK para Linux, Windows, Mac OS X, sistemas embebidos e a nube;
 OpenJDK / IcedTea;
 Aicas JamaicaVM;
 IBM J9 JDK, para AIX, Linux, Windows, MVS, OS/400, Pocker PC, z/OS;

Descontinuadas ou sen mantemento:

 Apache Harmony;
 Mac OS Runtime para Java de Apple JVM/JDK para o Mac OS clásico;
 Blackdown Java – Porto do JDK de Sun para Linux;
 A Classpath de GNU e GCJ (O compilador GNU para Java);
 JRockit JDK de Oracle, para Windows, Linux, e Solaris;

 Referencias 

 Véxase tamén 
 Ligazóns externas 

 Oracle Java SE
 Oracle Java SE Support Roadmap
 Open source OpenJDK project
 OpenJDK builds from Oracle
 OpenJDK builds from AdoptOpenJDK
 IBM Java SDK Downloads
 Open source JDK 7 project
 GNU Classpath – un JDK alternativo de Software libre 

Categoría:Informática
Categoría:Programación
Categoría:Java (linguaxe de programación)