Acerca de Oracle JDK 11+ (licencia y distribución)

Ayer, se publicó en Habré una traducción de la publicación "No caigas en la trampa usando Oracle JDK 11" , seguida de una discusión sobre "Java pagado", pero no todo es tan aterrador como parece a primera vista: a continuación se muestra una traducción de la publicación del blog de Oracle con la posición oficial de licencia y distribución JDK versiones 11+.

Resumen


A partir de Java 11, Oracle lanzará el JDK bajo la Licencia Pública General GNU v2, con la Excepción de Classpath (GPLv2 + CPE) y bajo una licencia comercial para aquellos que usan el Oracle JDK como parte de los productos o servicios de Oracle, o que no quieren usar el código abierto software Esta combinación de licencia del sistema operativo y comercial reemplaza la antigua BCL (Licencia de código binario de Oracle), que consiste en términos de uso comerciales y gratuitos.

Se proporcionarán conjuntos separados para cada licencia, pero estos conjuntos serán funcionalmente idénticos , excepto por algunas diferencias cosméticas y diferencias en la forma en que se empaquetan los binarios, que se describen en detalle a continuación.

De BCL a GPL


La licencia BCL para Oracle Java SE se ha utilizado para licenciar las tecnologías Oracle Java SE durante más de 10 años. Bajo ciertas condiciones, BCL permite su uso sin regalías. Para simplificar el trabajo adicional, comenzando con Java 9, Oracle comenzó a proporcionar ensamblados OpenJDK bajo la licencia del sistema operativo utilizada por la plataforma Linux (el núcleo Linux se distribuye bajo la licencia GNU GPLv2) . Si está acostumbrado a usar los binarios de Oracle Java SE de forma gratuita, simplemente puede continuar haciendo esto con los binarios de OpenJDK disponibles en jdk.java.net. Si está acostumbrado a usar los archivos binarios de Oracle Java SE como parte de los productos o servicios comerciales de Oracle, puede continuar recibiendo las versiones de Oracle JDK a través de My Oracle Support (MOS) o en otro lugar.

Idénticamente funcional e intercambiable ...


El Oracle JDK con licencia BCL ha contenido históricamente "características comerciales" que no estaban disponibles en las compilaciones de OpenJDK. Como se prometió, durante el año pasado, Oracle ha agregado estas características a OpenJDK, que incluyen:


Por lo tanto, comenzando con Java 11 y posteriores, los ensamblajes Oracle JDK y OpenJDK serán esencialmente idénticos.

... pero con algunas diferencias estéticas y de embalaje


Sigue habiendo un pequeño número de diferencias, algunas intencionales y cosméticas, y algunas solo requieren más tiempo para discutir con los contribuyentes de OpenJDK.

  • Oracle JDK 11 muestra una advertencia cuando se usa la -XX:+UnlockCommercialFeatures , mientras que en OpenJDK esta opción generará un error. Esta opción nunca ha sido parte de OpenJDK, por lo que no tiene sentido agregarla, ya que no hay características comerciales en OpenJDK. Esta diferencia sigue siendo para facilitar a los usuarios de Oralce JDK 10 o anterior actualizar a Oracle JDK 11 o posterior.
  • Oracle JDK 11 se puede configurar para proporcionar datos de registro a la Consola de administración avanzada , un producto comercial de Oracle por separado. Trabajaremos con otros contribuyentes de OpenJDK en la necesidad de proporcionar dichos datos y sus beneficios en OpenJDK en futuras versiones. Esta diferencia se mantiene principalmente para preservar la experiencia adquirida por los clientes de Oracle.
  • El javac --release comporta de manera diferente para Java 9 y Java 10, porque en estas versiones de Oracle JDK contiene algunos componentes adicionales que no formaban parte de las versiones correspondientes de OpenJDK:
    • javafx.base
    • javafx.controls
    • javafx.fxml
    • javafx.graphics
    • javafx.media
    • javafx.web
    • java.jnlp
    • jdk.jfr
    • jdk.management.cmm
    • jdk.management.jfr
    • jdk.management.resource
    • jdk.packager.services
    • jdk.snmp

    Esta distinción se mantiene para mantener la compatibilidad en algunos casos heredados. Estos módulos ahora están disponibles por separado como parte de OpenJFX, o están presentes en OpenJDK y en Oracle JDK, porque eran funciones comerciales que Oracle agregó a OpenJDK, o se eliminaron de Oracle JDK 11 (por ejemplo, JNLP).
  • La salida de los java -fullversion java --version y java -fullversion será diferente entre las compilaciones Oracle JDK y OpenJDK para que los equipos de soporte puedan diagnosticar cualquier problema que surja. En particular, ejecutar java --version con una compilación Oracle JDK 11 generará:
    java 11 2018-09-25
    Java (TM) SE Runtime Environment 18.9 (compilación 11 + 28)
    Servidor Java HotSpot (TM) de 64 bits VM 18.9 (compilación 11 + 28, modo mixto)

    Y con OpenJDK 11:
    versión openjdk "11" 2018-09-25
    OpenJDK Runtime Environment 18.9 (compilación 11 + 28)
    OpenJDK 64-Bit Server VM 18.9 (compilación 11 + 28, modo mixto)
  • Oracle JDK siempre ha requerido que proveedores criptográficos de terceros firmen con un certificado conocido. La criptografía en OpenJDK tiene una interfaz abierta, lo que significa que no hay restricción en el proveedor de criptografía utilizado. Oracle JDK 11 continuará requiriendo una firma válida, y los ensamblados OpenJDK continuarán permitiendo el uso de un proveedor de cifrado de terceros, tanto con una firma válida como sin firma.
  • Oracle JDK 11 continuará incluyendo instaladores, marcas y JRE para compatibilidad con aplicaciones de escritorio heredadas. Los ensamblados OpenJDK ahora están disponibles como archivos zip y tar.gz, mientras que se están considerando formatos alternativos para la distribución.

¿Cómo los llamamos?


Idealmente, podríamos referirnos a todos los ensambles de Oracle JDK como "Oracle JDK", ya sea bajo la GPL o bajo una licencia comercial, dependiendo de su situación. Sin embargo, por razones históricas, aunque existen ligeras diferencias, nos referiremos a ellas por separado: OpenJDK y Oracle JDK.

Source: https://habr.com/ru/post/es424725/


All Articles