El JDK es el kit de desarrollo de Java, el SDK completo para Java. Tiene todo lo que tiene el 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, pero es posible que otros usos autorizados bajo licencias anteriores de Oracle JDK ya no estén disponibles.
A veces, incluso si no planea hacer 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. ¿Por qué necesitarías el JDK entonces? Porque el servidor de aplicaciones convertirá JSP en servlets de Java y necesita usar el JDK para compilar los servlets.
¿Que es Java?
Java es un lenguaje de programación y una plataforma de software. Los ejemplos de aplicaciones que usan Java son numerosos y generalizados, pero incluyen navegadores web, aplicaciones de oficina e incluso juegos convencionales como Minecraft que se basan en Java.
¿Qué es Java JRE?
Java Runtime Environment o JRE contiene todo lo necesario para ejecutar aplicaciones Java en su sistema. El paquete de software JRE incluye la máquina virtual de Java (JVM), la biblioteca de clases de Java, el comando de Java y otra infraestructura. JRE no se puede utilizar para crear nuevos programas.
¿Qué es Java JDK?
El kit de desarrollo de Java (JDK) es el kit de desarrollo de software completo para desarrolladores de Java. Tiene todo lo que tiene JRE, pero agrega el compilador (javac) y herramientas (como javadoc y jdb). El JDK le permite crear y compilar programas Java.
¿Necesito Java JRE o Java JDK?
A menos que sea un desarrollador de software, solo necesita instalar Java JRE en su sistema para ejecutar programas Java. Por otro lado, si planea hacer algo de programación Java, necesita instalar el JDK en su lugar.
A veces, incluso si no planea hacer ninguna programación Java, 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. ¿Por qué necesitarías el JDK entonces? Porque el servidor de aplicaciones convertirá JSP en servlets de Java y necesita usar el JDK para compilar los servlets.
¿Java es de uso gratuito?
Sí, Java es de uso gratuito bajo la licencia jdk.java.net. Esto significa que cualquiera puede descargarlo para uso personal o de desarrollo sin costo alguno. Oracle cobra por el soporte a largo plazo, pero esto es opcional.
¿Qué aplicaciones populares usan Java?
Como el quinto lenguaje de programación más popular del mundo, existe una larga lista de aplicaciones populares que se basan en Java. Desde juegos como Minecraft y RuneScape, hasta servicios como Netflix, Spotify y Uber, y aplicaciones como Opera Mini, todos se han creado con Java.
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 OpenJDK Community y Java Community Process (JCP). ). Desde el lanzamiento del JDK 11 LTS anterior hace tres años, se han implementado más de 70 JEP.
Ofreciendo una licencia más simple
Oracle JDK 17 y futuras versiones de JDK se proporcionan bajo una licencia de uso gratuito hasta un año completo después de la próxima versión de LTS. Oracle también continuará brindando 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 en la mejora de 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 nueva de Java LTS. Oracle propone que el próximo lanzamiento de LTS sea Java 21 y esté disponible en septiembre de 2023, lo que cambiará la cadencia de lanzamiento de LTS en curso de tres años 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 hoy en día es que su organización solo les permite usar la última versión de LTS. Al mover las versiones de LTS a cada dos años, los desarrolladores que están con organizaciones conservadoras ahora tienen más opciones y acceso a las funciones que necesitan. amar y querer usar».
«Oracle está realizando cambios que beneficiarán significativamente a la comunidad de Java al cambiar los lanzamientos de soporte a largo plazo a una cadencia de dos años e introducir una nueva licencia más relajada que brinda 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 cualquier aplicación Java no planificada que se esté ejecutando y verifica si todas las versiones de Java instaladas están actualizadas con los últimos parches de seguridad.
JDK 17 incluye nuevas mejoras de lenguaje, actualizaciones de las bibliotecas, soporte para nuevas computadoras Apple, eliminaciones y obsolescencias de funciones heredadas, y trabaja 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 funciones de 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 e interfaces selladas restringen qué otras clases o interfaces pueden extenderlas o implementarlas. Esta mejora es otra mejora del Proyecto Amber, cuyo objetivo es aumentar la productividad de los desarrolladores 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 estricta de punto flotante. 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 la 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: Nueva canalización de renderizado de macOS: implementa una canalización de Java 2D para macOS utilizando Apple Metal API. La nueva canalización reducirá la dependencia de JDK de la obsoleta API OpenGL de Apple.
Nuevo soporte de 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: Deje obsoleta la API de Applet para su eliminación: todos los proveedores de navegadores web han eliminado la compatibilidad con complementos de navegador Java o han anunciado planes para hacerlo. La API 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 la invocación de método remoto (RMI), al tiempo que conserva el resto de RMI.
- JEP 410: eliminar el compilador experimental AOT y JIT: el compilador experimental basado en Java con anticipación (AOT) y justo a tiempo (JIT) eran características experimentales que no se veían mucho adopción. Al ser opcionales, ya se eliminaron de JDK 16. Este JEP elimina estos componentes del código fuente de JDK.
- JEP 411: Desaprobar 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 preparados para el futuro
- JEP 403: Encapsular fuertemente los elementos internos de JDK: ya no será posible relajar la encapsulación fuerte de los elementos internos a través de una sola opción de línea de comandos, como era posible en JDK 9 a JDK 16. Todavía será posible acceder a las API internas existentes , pero ahora requerirá enumerar, como parámetros de línea de comandos o atributos de manifiesto de archivo JAR, cada paquete para el que se debe relajar la encapsulación. Este cambio conducirá a aplicaciones más seguras y menos dependencias de los detalles de implementación interna de JDK no estándar.
Vistas previas e incubadoras para versiones posteriores de JDK
- JEP 406: Coincidencia de patrones para cambiar (versión preliminar): 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 manera concisa y segura.
- JEP 412: API de función externa y memoria (incubadora): mejora las API de incubación introducidas en JDK 14 y JDK 15 que permiten que los programas de Java interoperen con código y datos fuera del tiempo de ejecución de Java. Al invocar eficientemente 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 de 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 el Proyecto Panamá, cuyo objetivo es mejorar la interacción entre código Java y no Java.
- JEP 414: Vector API (Segunda incubadora): permite expresar cálculos vectoriales que se compilan de manera confiable en tiempo de ejecución en instrucciones vectoriales optimizadas en arquitecturas de CPU compatibles, logrando así un rendimiento superior a los cálculos escalares equivalentes.
ventanas
mac OS Intel
mac OS M1
DEB de Linux
RPM de Linux
Linux TAR.GZ
Linux BRAZO 64
Danos tu opinión