Debido a la reciente actualización de la política de hoja de ruta de soporte de Oracle Java SE (en particular, finales de $ actualizaciones gratuitas de Oracle después de marzo de 2019 en particular), he estado buscando alternativas a Oracle Java. Descubrí que OpenJDK es una alternativa de código abierto. Y he encontrado AdoptOpenJDK , ahora conocido como Adoptium, que es un binario preconstruido . Se desconcierta.
¿Cuál es la diferencia entre OpenJDK y Adoptium / AdoptOpenJDK?
Respuestas:
En breve:
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 :
Proveedores de OpenJDK y comparación
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)
fuente
Actualización: AdoptOpenJDK ha cambiado su nombre a Adoptium , como parte de su traslado a la Fundación Eclipse .
OpenJDK ➙ código fuente
Adoptium / AdoptOpenJDK ➙ compilaciones
El primero proporciona código fuente , el otro proporciona compilaciones de ese código fuente.
Varios proveedores de Java y OpenJDK
Adoptium de la Fundación Eclipse , anteriormente conocida como AdoptOpenJDK , es solo uno de los varios proveedores que distribuyen implementaciones de la plataforma Java. Éstos incluyen:
Consulte este diagrama de flujo mío para ayudarlo a elegir un proveedor para una implementación de la plataforma Java. Haga clic / toque para ampliar.
Otro recurso: esta matriz de comparación de Azul Systems es útil y me parece verdadera y justa.
Aquí hay una lista de consideraciones y motivaciones a considerar al elegir un proveedor y su implementación.
Algunos proveedores le ofrecen una variedad de tecnologías JIT .
Para entender más sobre este ecosistema de Java, lea Java Is Still Free
fuente