java sdk

java - Diferencia entre OpenJDK y AdoptOpenJDK



sdk (1)

Debido a la reciente actualización de la política de Oracle Java SE Support Roadmap (al final de $ actualizaciones de lanzamiento gratuitas de Oracle después de marzo de 2019 en particular), he estado buscando alternativas a Oracle Java. He encontrado que OpenJDK es una alternativa de código abierto. Y encontré AdoptOpenJDK, que es un binario creado previamente. Se desconcierta.

¿Cuál es la diferencia entre OpenJDK y AdoptOpenJDK?


En breve:

  • OpenJDK tiene múltiples significados y puede ser referido como:
    • Implementación gratuita y de código abierto de la plataforma Java, edición estándar (Java SE)
    • http://hg.openjdk.java.net/ - el código fuente de Java también conocido como proyecto OpenJDK
    • binarios preinstalados de OpenJDK mantenidos por Oracle
  • AdoptOpenJDK - binarios OpenJDK creados previamente y mantenidos por la comunidad ( licencia de código abierto )

Explicación:

OpenJDK (o distribución) predefinido : 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 denominado 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 VM 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 gratuita, como en beer y de forma gratuita , 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 (incluyendo LTS). El día en que Oracle lanza 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 la versión 11.0. Mantenido únicamente por Oracle.

AdoptOpenJDK, la distribución , 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 desde el repositorio fuente de OpenJDK). AdoptOpenJDK como entidad no será parches de backporting, es decir, no habrá un ''fork / versión'' de AdoptOpenJDK que sea materialmente diferente de upstream (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 de las actualizaciones de las versiones de OpenJDK LTS, entonces AdoptOpenJDK proporcionará compilaciones para esas. Mantenido por la comunidad OpenJDK.

También hay OracleJDK - otra distribución, comenzando con JDK12, no habrá una versión gratuita de esto. La oferta de distribución de JDK de Oracle está destinada a soporte comercial. Usted paga por esto, pero luego puede confiar en Oracle para soporte. A diferencia de la oferta OpenJDK de Oracle, la oferta OracleJDK viene con un soporte más prolongado para las versiones LTS. Como desarrollador, puede obtener una licencia gratuita para uso personal / 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 de LTS JDKs con parches de seguridad de los sitios web de Oracle, siempre que prometa no usarlas comercialmente.

Nota Quizás sea mejor llamar a las compilaciones OpenJDK de Oracle, las "compilaciones Oracle OpenJDK".

Donald Smith, gerente de producto de Java en Oracle writes :

Idealmente, simplemente nos referiríamos a todas las compilaciones de Oracle JDK como "JDK de Oracle", ya sea bajo la GPL o la licencia comercial, dependiendo de su situación. Sin embargo, por razones históricas, mientras que existen las pequeñas diferencias restantes, nos referiremos a ellas por separado como OpenJDK de Oracle y al JDK de Oracle.

Proveedores de OpenJDK y comparación

--------------------------------------------------------------------------- | Provider | Free Builds | Free Binary | Extended | Commercial | | | from Source | Distributions | Updates* | Support | |-------------------------------------------------------------------------| | AdoptOpenJDK | Yes | Yes | Yes | No | | Amazon – Corretto | Yes | Yes | Yes | No | | Azul Zulu | No | Yes | Yes | Yes | | BellSoft Liberica | No | Yes | Yes | Yes | | IBM | No | No | Yes | Yes | | Oracle JDK | No | Yes | No** | Yes | | Oracle OpenJDK | Yes | Yes | No | No | | ojdkbuild | Yes | Yes | No | No | | RedHat | Yes | Yes | Yes | Yes | | SapMachine | Yes | Yes | Yes | Yes | ---------------------------------------------------------------------------

* Actualizaciones ampliadas, también conocidas como LTS (soporte a largo plazo): actualizaciones públicas que superan el ciclo de vida de la versión de 6 meses.

** Oracle proporciona actualizaciones extendidas (y soporte) para clientes que pagan, es decir, solo JDK de Oracle

¿Qué distribución de Java debo usar?

En los días de Sun / Oracle, solía ser Sun / Oracle la producción de distribuciones de JDK descendentes propietarias basadas en fuentes OpenJDK. Recientemente, Oracle decidió hacer sus propias compilaciones propietarias solo con el soporte comercial adjunto. Ellos publican gentilmente las compilaciones de OpenJDK también en su sitio https://jdk.java.net/ .

Lo que está ocurriendo al iniciar JDK 11 es el cambio de la mentalidad de un solo proveedor (Oracle) a la mentalidad en la que selecciona un proveedor que le proporciona una distribución para el producto, en las condiciones que le gustan: plataformas para las que se crea, frecuencia / rapidez de las versiones , 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 generalmente se realiza 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 en paquete (por ejemplo, BellSoft Liberica JDK ofrece JavaFX en paquete, que se eliminó de las compilaciones de Oracle a partir del JDK 11).

Si ningún entorno (p. Ej., Linux) y / o requisito de licencia define 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

Tiempo para mirar más allá del JDK de Oracle por Stephen Colebourne

Java sigue siendo gratuito por la comunidad de Campeones de Java (publicado el 17 de septiembre de 2018)

Java sigue siendo gratis 2.0.0 por la comunidad de Java Champions (publicado el 3 de marzo de 2019)

Aleksey Shipilëv sobre la entrevista de actualizaciones de JDK por Opsian (publicada el 27 de junio de 2019)