El JDK es el Java Development Kit, el SDK con todas las funciones para Java. Tiene todo lo que tiene JRE, pero también el compilador (javac) y herramientas (como javadoc y jdb). Es capaz de crear y compilar programas.
El nuevo Acuerdo de licencia de Oracle Technology Network para Oracle Java SE es sustancialmente diferente de las licencias anteriores de Oracle JDK. La nueva licencia permite ciertos usos, como el uso personal y el uso de desarrollo, sin costo alguno, pero es posible que otros usos autorizados bajo licencias anteriores de Oracle JDK ya no estén disponibles.
A veces, incluso si no planea realizar ningún desarrollo de Java en una computadora, aún necesita el JDK instalado. Por ejemplo, si está implementando una aplicación web con JSP, técnicamente solo está ejecutando programas Java dentro del servidor de aplicaciones. Entonces, ¿por qué necesitarías el JDK? Porque el servidor de aplicaciones convertirá JSP en servlets Java y necesita usar el JDK para compilar los servlets.
Qué hay de nuevo:
Oracle anunció hoy la disponibilidad de Java 17, la última versión del lenguaje de programación y plataforma de desarrollo número uno del mundo. Java 17 ofrece miles de actualizaciones de rendimiento, estabilidad y seguridad, así como 14 JEP (propuestas de mejora de JDK) que mejoran aún más el lenguaje y la plataforma Java para ayudar a los desarrolladores a ser más productivos.
Java 17 es la última versión de soporte a largo plazo (LTS) bajo la cadencia de lanzamiento de seis meses de Java y es el resultado de una amplia colaboración entre los ingenieros de Oracle y otros miembros de la comunidad mundial de desarrolladores de Java a través de la Comunidad OpenJDK y el Proceso de la Comunidad Java (JCP). ). Desde que se lanzó el anterior JDK 11 LTS hace tres años, se han implementado más de 70 JEP.
Ofreciendo una licencia más simple
Oracle JDK 17 y las versiones futuras de JDK se proporcionan bajo una licencia de uso gratuito hasta un año completo después de la próxima versión LTS. Oracle también continuará proporcionando versiones de Oracle OpenJDK bajo la Licencia Pública General (GPL) de código abierto, como lo ha hecho desde 2017.
Mejora del soporte a largo plazo para los clientes
Oracle está colaborando con la comunidad de desarrolladores de Java y el JCP para mejorar la programación de LTS para brindar a las organizaciones más flexibilidad sobre cuándo, o si desean, migrar a una versión más reciente de Java LTS. Oracle propone que la próxima versión de LTS sea Java 21 y esté disponible en septiembre de 2023, lo que cambiará la cadencia actual de la versión de LTS de tres a dos años.
Con el respaldo de Oracle LTS y Java SE Subscription, los clientes pueden migrar a Java 17 al ritmo que mejor se adapte a sus necesidades. Oracle proporcionará a los clientes actualizaciones de seguridad, rendimiento y corrección de errores para Java 17 hasta al menos septiembre de 2029.
“Durante los últimos tres años hemos escuchado cuánto a los desarrolladores les encantan las funciones más recientes, y hemos visto que el ecosistema realmente adopta la cadencia de lanzamiento de seis meses”, dijo Georges Saab, vicepresidente de desarrollo, Java Platform Group, Oracle. “Uno de los mayores desafíos que enfrentan los desarrolladores de Java en la actualidad es que su organización solo les permite usar la última versión de LTS. Al trasladar las versiones de LTS a cada dos años, los desarrolladores que trabajan con organizaciones conservadoras ahora tienen más opciones y acceso a las funciones que les encantan y quieren usar «.
«Oracle está realizando cambios que beneficiarán significativamente a la comunidad de Java al cambiar las versiones de soporte a largo plazo a una cadencia de dos años e introducir una licencia nueva y más relajada que proporciona el uso de producción gratuito de Oracle JDK durante un tiempo prolongado», dijo el Dr. Arnal Dayaratna, vicepresidente de investigación, desarrollo de software de IDC. “Estos cambios brindarán a las organizaciones una mayor flexibilidad para administrar la complejidad del desarrollo y las implementaciones de aplicaciones modernas en la nube, en las instalaciones y en entornos híbridos”.
Acelerando la adopción de Java en la nube
Java es una de las plataformas de desarrollo más exitosas de la historia y se basa en la innovación continua que aborda las necesidades cambiantes de los desarrolladores. Para acelerar la adopción de Java en la nube, Oracle presentó recientemente Oracle Java Management Service, un nuevo servicio nativo de Oracle Cloud Infrastructure (OCI) para ayudar a las organizaciones a administrar los tiempos de ejecución y las aplicaciones de Java en las instalaciones o en cualquier nube.
Java Management Service brinda a los clientes visibilidad de sus implementaciones de Java en toda la empresa. Esto abarca todas las versiones de Java instaladas en su entorno, incluidas las versiones de Java que se ejecutan en desarrollo y producción. También destaca las aplicaciones Java no planificadas que se estén ejecutando y comprueba si todas las versiones de Java instaladas están actualizadas con los últimos parches de seguridad.
JDK 17 incluye nuevas mejoras de idioma, actualizaciones de las bibliotecas, compatibilidad con nuevas computadoras Apple, eliminación y desaprobación de funciones heredadas, y trabajo para garantizar que el código Java escrito hoy continúe funcionando sin cambios en futuras versiones de JDK. También ofrece una vista previa de las características del lenguaje y API de incubación para recopilar comentarios de la comunidad de Java. Las actualizaciones incluyen:
Mejora del lenguaje Java
- JEP 409: Clases selladas: las clases y las interfaces selladas restringen qué otras clases o interfaces pueden extenderlas o implementarlas. Esta mejora es otra mejora de Project Amber, que tiene como objetivo aumentar la productividad del desarrollador mediante la evolución del lenguaje Java.
Actualizaciones y mejoras a las bibliotecas
- JEP 306: Restaurar la semántica de punto flotante siempre estricta: el lenguaje de programación Java y la máquina virtual Java originalmente solo tenían una semántica de punto flotante estricta. A partir de Java 1.2, se permitieron pequeñas variaciones en esa semántica estricta de forma predeterminada para adaptarse a las limitaciones de las arquitecturas de hardware vigentes en ese momento. Esas variaciones ya no son útiles ni necesarias, por lo que han sido eliminadas por JEP 306.
- JEP 356: Generador de números pseudoaleatorios mejorado: proporciona nuevos tipos de interfaz e implementaciones para generadores de números pseudoaleatorios (PRNG). Este cambio mejora la interoperabilidad de diferentes PRNG y facilita la solicitud de un algoritmo basado en requisitos en lugar de codificar una implementación específica.
- JEP 382: Nuevo canal de procesamiento de macOS: implementa un canal de Java 2D para macOS mediante la API de Apple Metal. La nueva canalización reducirá la dependencia del JDK de la API OpenGL de Apple obsoleta.
Soporte de nueva plataforma
- JEP 391: puerto macOS AArch64: transfiere el JDK a la plataforma macOS / AArch64. Este puerto permitirá que las aplicaciones Java se ejecuten de forma nativa en las nuevas computadoras Apple Silicon basadas en Arm 64.
Eliminaciones y bajas
- JEP 398: Desaprovechar la API de Applet para su eliminación: todos los proveedores de navegadores web han eliminado la compatibilidad con los complementos del navegador Java o han anunciado planes para hacerlo. La API de Applet quedó obsoleta, pero no para su eliminación, en Java 9 en septiembre de 2017.
- JEP 407: Eliminar la activación de RMI: elimina el mecanismo de activación de invocación de método remoto (RMI), al tiempo que conserva el resto de RMI.
- JEP 410: Eliminación del compilador experimental AOT y JIT: el compilador experimental basado en Java con anticipación (AOT) y justo a tiempo (JIT) fueron características experimentales que no tuvieron mucha adopción. Al ser opcionales, ya se eliminaron del JDK 16. Este JEP elimina estos componentes del código fuente del JDK.
- JEP 411: Desaproveche el administrador de seguridad para su eliminación: el administrador de seguridad se remonta a Java 1.0. No ha sido el medio principal para proteger el código Java del lado del cliente durante muchos años, y rara vez se ha utilizado para proteger el código del lado del servidor. Eliminarlo en una versión futura eliminará una carga de mantenimiento significativa y permitirá que la plataforma Java avance.
Programas Java de prueba futura
- JEP 403: encapsular fuertemente los componentes internos de JDK: ya no será posible relajar la encapsulación fuerte de los elementos internos a través de una única opción de línea de comandos, como era posible en JDK 9 a JDK 16. Aún será posible acceder a las API internas existentes , pero ahora requerirá enumerar, como parámetros de línea de comandos o atributos de manifiesto del archivo JAR, cada paquete para el cual la encapsulación debe relajarse. Este cambio dará lugar a aplicaciones más seguras y menos dependencias de los detalles de implementación del JDK interno no estándar.
Vistas previas e incubadoras para versiones posteriores de JDK
- JEP 406: Coincidencia de patrones para conmutador (vista previa): permite probar una expresión con varios patrones, cada uno con una acción específica, de modo que las consultas complejas orientadas a datos se puedan expresar de forma concisa y segura.
- JEP 412: API de memoria y función externa (incubadora): mejora las API de incubación introducidas en JDK 14 y JDK 15 que permiten que los programas Java interoperen con código y datos fuera del tiempo de ejecución de Java. Al invocar de manera eficiente funciones externas (es decir, código fuera de la JVM) y al acceder de manera segura a la memoria externa, estas API permiten que los programas Java llamen a bibliotecas nativas y procesen datos nativos sin la fragilidad y complejidad de la Interfaz nativa de Java (JNI). Estas API se están desarrollando en Project Panamá, cuyo objetivo es mejorar la interacción entre el código Java y el que no es Java.
- JEP 414: API de vectores (segunda incubadora): permite expresar vectores cálculos que se compilan de manera confiable en tiempo de ejecución para obtener instrucciones vectoriales optimizadas en arquitecturas de CPU compatibles, logrando así un rendimiento superior a los cálculos escalares equivalentes.
Ventanas
macOS Intel
macOS ARM
Linux DEB
RPM de Linux
TAR.GZ de Linux
Linux ARM 64
Danos tu opinión