En breve:
- OpenJDK tiene múltiples significados y puede referirse a:
- Implementación gratuita y de código abierto de la Plataforma Java, Edición Estándar (Java SE)
- repositorio de código abierto : el código fuente de Java, también conocido como proyecto OpenJDK
- binarios de OpenJDK preconstruidos mantenidos por Oracle
- binarios de OpenJDK preconstruidos mantenidos por la comunidad de OpenJDK
- AdoptOpenJDK : binarios de OpenJDK preconstruidos mantenidos por la comunidad ( código abierto con licencia )
Explicación:
OpenJDK precompilado (o distribución): binarios, creados a partir de http://hg.openjdk.java.net/ , proporcionados como un archivo o instalador, ofrecidos para varias plataformas, con un posible contrato de soporte.
OpenJDK, el repositorio de origen (también llamado proyecto OpenJDK ) - es un repositorio de código abierto basado en Mercurial , alojado en
http://hg.openjdk.java.net . El código fuente de Java. La gran mayoría de las características de Java (desde la VM y las bibliotecas principales hasta el compilador) se basan únicamente en este repositorio de origen. Oracle tiene una bifurcación alternativa de esto.
OpenJDK, la distribución (ver la lista de proveedores a continuación), es gratis como en cerveza y un poco gratis como en voz , pero no puede llamar a Oracle si tiene problemas con ella. No hay contrato de soporte. Además, Oracle solo lanzará actualizaciones a cualquier versión de OpenJDK (la distribución) si esa versión es la versión más reciente de Java, incluidas las versiones LTS (soporte a largo plazo). El día que Oracle publique OpenJDK (la distribución) versión 12.0, incluso si hay un problema de seguridad con OpenJDK (la distribución) versión 11.0, Oracle no lanzará una actualización para 11.0. Mantenido únicamente por Oracle.
Algunos proyectos de OpenJDK, como OpenJDK 8 y OpenJDK 11 , son mantenidos por la comunidad de OpenJDK y proporcionan versiones para algunas versiones de OpenJDK para algunas plataformas. Los miembros de la comunidad han asumido la responsabilidad de publicar soluciones para las vulnerabilidades de seguridad en estas versiones de OpenJDK.
AdoptOpenJDK, la distribución es muy similar a la distribución OpenJDK de Oracle (en el sentido de que es gratuita, y es una compilación producida compilando las fuentes del repositorio de fuentes OpenJDK). AdoptOpenJDK como entidad no será parches de backport, es decir, no habrá una 'bifurcación / versión' de AdoptOpenJDK que sea materialmente diferente del flujo ascendente (a excepción de algunos parches de script de compilación para cosas como el soporte Win32). Es decir, si los miembros de la comunidad (Oracle u otros, pero no AdoptOpenJDK como entidad) respaldan las correcciones de seguridad para las actualizaciones de las versiones OpenJDK LTS, entonces AdoptOpenJDK proporcionará compilaciones para ellos. Mantenido por la comunidad OpenJDK.
OracleJDK - es otra distribución más. A partir de JDK12, no habrá una versión gratuita de OracleJDK. La oferta de distribución JDK de Oracle está destinada a soporte comercial. Paga por esto, pero luego puede confiar en Oracle para obtener soporte. A diferencia de la oferta OpenJDK de Oracle, OracleJDK viene con soporte más largo para las versiones LTS. Como desarrollador, puede obtener una licencia gratuita para uso personal / de desarrollo solo de este JDK en particular, pero eso es principalmente una pista falsa, ya que 'solo el binario' es básicamente el mismo que el binario OpenJDK. Supongo que significa que puede descargar versiones con parches de seguridad de LTS JDK de los sitios web de Oracle, siempre y cuando prometa no usarlos comercialmente.
Nota . Puede ser mejor llamar a las compilaciones OpenJDK de Oracle las "compilaciones Oracle OpenJDK".
Donald Smith, gerente de producto Java de Oracle escribe :
Idealmente, simplemente nos referiríamos a todas las compilaciones de Oracle JDK como el "Oracle JDK", ya sea bajo la licencia GPL o comercial, según su situación. Sin embargo, por razones históricas, si bien existen las pequeñas diferencias restantes, nos referiremos a ellas por separado como compilaciones OpenJDK de Oracle y Oracle JDK.
Proveedores de OpenJDK y comparación
-------------------------------------------------- --------------------------------------
El | Proveedor | Construcciones Gratis | Binario Gratis | Extendido | Comercial | Permisivo |
El | El | de la fuente | Distribuciones | Actualizaciones | Apoyo | Licencia |
| ------------------------------------------------- ------------------------------------- |
El | AdoptOpenJDK | Sí | Sí | Sí | No | Sí |
El | Amazon - Corretto | Sí | Sí | Sí | No | Sí |
El | Azul Zulu | No | Sí | Sí | Sí | Sí |
El | BellSoft Liberica | No | Sí | Sí | Sí | Sí |
El | IBM | No | No | Sí | Sí | Sí |
El | jClarity | No | No | Sí | Sí | Sí |
El | OpenJDK | Sí | Sí | Sí | No | Sí |
El | Oracle JDK | No | Sí | No ** | Sí | No |
El | Oracle OpenJDK | Sí | Sí | No | No | Sí |
El | ojdkbuild | Sí | Sí | No | No | Sí |
El | RedHat | Sí | Sí | Sí | Sí | Sí |
El | SapMachine | Sí | Sí | Sí | Sí | Sí |
-------------------------------------------------- --------------------------------------
Compilaciones gratuitas desde la fuente : el código fuente de distribución está disponible públicamente y se puede armar su propia compilación
Distribuciones binarias gratuitas : los binarios de distribución están disponibles públicamente para su descarga y uso
Actualizaciones extendidas - también conocido como LTS (soporte a largo plazo) - Actualizaciones públicas más allá del ciclo de vida de lanzamiento de 6 meses
Soporte comercial : algunos proveedores ofrecen actualizaciones ampliadas y soporte al cliente para clientes que pagan, por ejemplo, Oracle JDK ( detalles del soporte )
Licencia permisiva : la licencia de distribución no es protectora, por ejemplo, Apache 2.0
¿Qué distribución de Java debo usar?
En los días de Sun / Oracle, generalmente Sun / Oracle producía las distribuciones propietarias JDK posteriores basadas en fuentes OpenJDK. Recientemente, Oracle había decidido hacer sus propias compilaciones patentadas solo con el soporte comercial adjunto. Publican gentilmente las compilaciones de OpenJDK también en su sitio https://jdk.java.net/ .
Lo que está sucediendo a partir de JDK 11 es el cambio de la mentalidad de un solo proveedor (Oracle) a la mentalidad en la que selecciona un proveedor que le brinda una distribución para el producto, en las condiciones que desee: plataformas para las que construyen, frecuencia y rapidez de los lanzamientos , cómo se estructura el soporte, etc. Si no confía en ninguno de los proveedores existentes, incluso puede crear OpenJDK usted mismo.
Cada compilación de OpenJDK se hace generalmente desde el mismo repositorio original original (OpenJDK "el proyecto"). Sin embargo, cada compilación es bastante única: $ gratis o comercial, de marca o sin marca, puro o incluido (por ejemplo, BellSoft Liberica JDK ofrece JavaFX incluido, que se eliminó de las compilaciones de Oracle a partir de JDK 11).
Si ningún entorno (p. Ej., Linux) y / o requisitos de licencia definen una distribución específica y si desea la compilación JDK más estándar , entonces probablemente la mejor opción es usar OpenJDK de Oracle o AdoptOpenJDK.
Información Adicional
Es hora de mirar más allá del JDK de Oracle por Stephen Colebourne
Java Is Still Free por la comunidad de Java Champions (publicado el 17 de septiembre de 2018)
Java sigue siendo gratuito 2.0.0 por la comunidad de Java Champions (publicado el 3 de marzo de 2019)
Aleksey Shipilev sobre JDK actualiza la entrevista de Opsian (publicada el 27 de junio de 2019)