Saltar al contenido

Diferencia entre OpenJDK y Adoptium / AdoptOpenJDK

Luego de de esta larga búsqueda de datos pudimos solucionar este asunto que presentan ciertos usuarios. Te compartimos la solución y nuestro objetivo es que te resulte de gran ayuda.

Solución:

En breve:

  • OpenJDK tiene múltiples significados y puede referirse a:
    • implementación gratuita y de código abierto de Java Platform, Standard Edition (Java SE)
    • repositorio de código abierto: el código fuente de Java también conocido como proyecto OpenJDK
    • binarios OpenJDK precompilados mantenidos por Oracle
    • binarios OpenJDK precompilados mantenidos por la comunidad OpenJDK
  • AdoptOpenJDK – binarios OpenJDK precompilados mantenidos por la comunidad (con licencia de código abierto)

Explicación:

OpenJDK prediseñado (o distribución): binarios, creados a partir de http://hg.openjdk.java.net/, proporcionados como 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 funciones de Java (desde la máquina virtual y las bibliotecas centrales hasta el compilador) se basan únicamente en este repositorio de origen. Oracle tiene una bifurcación alternativa de esto.

OpenJDK, la distribución (consulte la lista de proveedores a continuación): es gratis como en cerveza y algo gratis como en voz, pero no puede llamar a Oracle si tiene problemas con él. No hay contrato de soporte. Además, Oracle solo lanzará actualizaciones para 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 lance 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 OpenJDK y proporcionan lanzamientos para algunas versiones de OpenJDK para algunas plataformas. Los miembros de la comunidad han asumido la responsabilidad de publicar correcciones 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 al compilar las fuentes del repositorio de fuentes OpenJDK). AdoptOpenJDK como entidad no tendrá parches de respaldo, es decir, no habrá una ‘versión / bifurcación’ de AdoptOpenJDK que sea materialmente diferente de la corriente arriba (excepto por algunos parches de script de compilación para cosas como el soporte de Win32). Es decir, si los miembros de la comunidad (Oracle u otros, pero no AdoptOpenJDK como entidad) respaldan las correcciones de seguridad a las actualizaciones de las versiones de OpenJDK LTS, AdoptOpenJDK proporcionará compilaciones para esos. 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 de JDK de Oracle está destinada al soporte comercial. Usted paga por esto, pero luego puede confiar en Oracle para obtener soporte. A diferencia de la oferta OpenJDK de Oracle, OracleJDK viene con un 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 lo mismo que el binario de OpenJDK. Supongo que significa que puede descargar versiones de LTS JDK con parches de seguridad de los sitios web de Oracle siempre que se comprometa a no utilizarlas comercialmente.

Nota. Puede ser mejor llamar a las compilaciones de OpenJDK de Oracle las “compilaciones de Oracle OpenJDK”.

Donald Smith, gerente de productos Java de Oracle, escribe:

Idealmente, simplemente nos referiríamos a todas las compilaciones de Oracle JDK como “Oracle JDK”, ya sea bajo la GPL o la licencia comercial, dependiendo de 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 JDK de Oracle.


Proveedores y comparación de OpenJDK

  • AdoptOpenJDK – https://adoptopenjdk.net
  • Amazonas – Corretto – https://aws.amazon.com/corretto
  • Azul Zulu – https://www.azul.com/downloads/zulu/
  • BellSoft Liberica – https://bell-sw.com/java.html
  • IBM – https://www.ibm.com/developerworks/java/jdk
  • jClarity – https://www.jclarity.com/adoptopenjdk-support/
  • OpenJDK aguas arriba – https://adoptopenjdk.net/upstream.html
  • Oracle JDK – https://www.oracle.com/technetwork/java/javase/downloads
  • Oracle OpenJDK – http://jdk.java.net
  • ojdkbuild – https://github.com/ojdkbuild/ojdkbuild
  • Sombrero rojo – https://developers.redhat.com/products/openjdk/overview
  • SapMachine – https://sap.github.io/SapMachine
----------------------------------------------------------------------------------------
|     Provider      | Free Builds | Free Binary   | Extended | Commercial | Permissive |
|                   | from Source | Distributions | Updates  | Support    | License    |
|--------------------------------------------------------------------------------------|
| AdoptOpenJDK      |    Yes      |    Yes        |   Yes    |   No       |   Yes      |
| Amazon – Corretto |    Yes      |    Yes        |   Yes    |   No       |   Yes      |
| Azul Zulu         |    No       |    Yes        |   Yes    |   Yes      |   Yes      |
| BellSoft Liberica |    No       |    Yes        |   Yes    |   Yes      |   Yes      |
| IBM               |    No       |    No         |   Yes    |   Yes      |   Yes      |
| jClarity          |    No       |    No         |   Yes    |   Yes      |   Yes      |
| OpenJDK           |    Yes      |    Yes        |   Yes    |   No       |   Yes      |
| Oracle JDK        |    No       |    Yes        |   No**   |   Yes      |   No       |
| Oracle OpenJDK    |    Yes      |    Yes        |   No     |   No       |   Yes      |
| ojdkbuild         |    Yes      |    Yes        |   No     |   No       |   Yes      |
| RedHat            |    Yes      |    Yes        |   Yes    |   Yes      |   Yes      |
| SapMachine        |    Yes      |    Yes        |   Yes    |   Yes      |   Yes      |
----------------------------------------------------------------------------------------

Compilaciones gratuitas a partir de la fuente – el código fuente de distribución está disponible públicamente y se puede ensamblar 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 la versión de 6 meses

Soporte comercial – algunos proveedores ofrecen actualizaciones extendidas y soporte al cliente a los clientes que pagan, por ejemplo, Oracle JDK (detalles de soporte)

Licencia permisiva – la licencia de distribución no es protectora, por ejemplo, Apache 2.0


¿Qué distribución de Java debo utilizar?

En los días de Sun / Oracle, solía ser Sun / Oracle el que producía las distribuciones de JDK posteriores propietarias basadas en fuentes OpenJDK. Recientemente, Oracle había decidido hacer sus propias compilaciones patentadas solo con el soporte comercial adjunto. También publican gentilmente las compilaciones de OpenJDK en su sitio https://jdk.java.net/.

Lo que está sucediendo a partir de JDK 11 es el cambio de la mentalidad de proveedor único (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 se construyen, frecuencia y rapidez de los lanzamientos. , cómo está estructurado el soporte, etc. Si no confía en ninguno de los proveedores existentes, puede incluso crear OpenJDK usted mismo.

Cada compilación de OpenJDK generalmente se hace a partir del mismo repositorio de código fuente original (OpenJDK “el proyecto”). Sin embargo, cada compilación es bastante única: gratis o comercial, de marca o sin marca, pura o en paquete (por ejemplo, BellSoft Liberica JDK ofrece JavaFX en paquete, que se eliminó de las compilaciones de Oracle a partir de JDK 11).

Si ningún entorno (p. Ej., Linux) y / o requisito de licencia define una distribución específica y si desea más estándar JDK build, entonces probablemente la mejor opción sea 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 de la comunidad Java Champions (publicado el 17 de septiembre de 2018)

Java is Still Free 2.0.0 de la comunidad Java Champions (publicado el 3 de marzo de 2019)

Aleksey Shipilev sobre la entrevista de Opsian sobre actualizaciones de JDK (publicada el 27 de junio de 2019)

Actualizar:AdoptOpenJDK ha cambiado su nombre a Adoptium, como parte de su traslado a la Fundación Eclipse.


OpenJDK ➙ código fuente
Adoptium / AdoptOpenJDK ➙ construye

Diferencia entre OpenJDK y AdoptOpenJDK

El primero proporciona código fuente, el otro proporciona construye de ese código fuente.

  • OpenJDK es un proyecto de código abierto que proporciona código fuente (no compilaciones) de una implementación de la plataforma Java definida por:
    • las especificaciones de Java
    • Documentos de solicitud de especificación de Java (JSR) publicados por Oracle a través del proceso de la comunidad de Java
    • Documentos de propuesta de mejora de JDK (JEP) publicados por Oracle a través de OpenJDK proyecto
  • AdoptOpenJDK es una organización fundada por algunos miembros destacados de la comunidad Java cuyo objetivo es proporcionar compilaciones e instaladores binarios sin costo para los usuarios de la tecnología Java.

Varios proveedores de Java y OpenJDK

Adoptium de la Fundación Eclipse, antes conocida como AdoptOpenJDK, es solo uno de varios proveedores que distribuyen implementaciones de la plataforma Java. Éstos incluyen:

  • Fundación Eclipse (Adoptium / AdoptOpenJDK)
  • Azul Systems
  • Oráculo
  • Red Hat / IBM
  • BellSoft
  • SAVIA
  • Amazon AWS
  • … y más

Vea este diagrama de flujo mío como guía para elegir un proveedor para una implementación de la plataforma Java. Haga clic / toque para ampliar.

Diagrama de flujo que lo guía en la elección de un proveedor para una implementación de Java 11

Otro recurso: esta matriz de comparación de Azul Systems es útil y parece true y justo en mi opinión.

A continuación, se incluye una lista de consideraciones y motivaciones a tener en cuenta al elegir un proveedor y su implementación.

Motivaciones para elegir un proveedor de Java

Algunos proveedores le ofrecen una selección de tecnologías JIT.

Diagrama que muestra el historial de la fusión de HotSpot y JRockit, y OpenJ9, ambos disponibles en AdoptOpenJDK

Para comprender más sobre este ecosistema de Java, lea Java sigue siendo gratuito

Sección de Reseñas y Valoraciones

Recuerda que puedes comunicar esta noticia si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *