Actualmente estoy haciendo un videojuego en Java que probablemente se distribuirá a través de Steam. Por supuesto, muchos usuarios de Steam no tendrán Java ya instalado en este caso. Si esto sucede, puedo tener un pequeño iniciador nativo que muestra un diálogo informativo que le dice al usuario que necesita instalar Java, o simplemente incluir mi propio entorno de ejecución Java (específicamente OpenJDK 8) con mi juego. Mi juego será de código cerrado, sin embargo, se basa en un motor de juego de código abierto (licencia BSD).
Miré a través de la licencia de OpenJDK. Es un proyecto GPL, lo que significa que todo lo que se vincule a él también debe ser GPL. Sin embargo, también tienen la excepción classpath. No estoy seguro de si la parte de vinculación se aplica porque mi código no se vincula a ella más de lo que sería con o sin agruparlo. Que yo sepa, la excepción classpath no cubre este caso de uso.
Hay una pregunta similar sobre Stack Overflow , sin embargo, que se refiere a la situación en la que se desarrolla una aplicación con OpenJDK, me refiero a la distribución con OpenJDK.
Respuestas:
Esta es una pregunta importante, especialmente cuando considera el hecho de que Oracle ha cambiado sus acuerdos de licencia y distribución a partir de Java 9, 10 y 11.
JDK -> Kit de desarrollo de Java .
Los JDK no son una distribución de "tiempo de ejecución": un JDK es una distribución de desarrollador que contiene un tiempo de ejecución como parte del paquete. Los JDK no son 'distribuibles libremente' por el desarrollador, tienen licencia para el desarrollador. Si lee el EULA para su JDK, verá que viene con restricciones en la redistribución.
JRE -> Java Runtime Engine.
Los tiempos de ejecución son (casi siempre) gratuitos para descargar y distribuir siempre que cumpla con el EULA para el JRE.
JDK y JRE tienen licencia y se distribuyen por separado e independientemente el uno del otro.
Finalmente, debe saber que, por lo general, tampoco puede distribuir 'partes' o componentes de un JDK; esto significa que no debe extraer el JRE de su JDK instalado y distribuirlo o agruparlo por separado.
La mejor práctica es separar el desarrollo del despliegue.
fuente
Por lo que leí en la licencia, puedes redistribuir libremente el programa, incluso cobrar por distribuirlo.
Pero como tengo experiencia personal con el lanzamiento de un juego de Java (no pagado), creo que es mejor decirle al usuario que Java Runtime Environment se requiere en la fuente de distribución (darles un enlace a la descarga de Java) o tener la aplicación dar al usuario un error.
fuente