Atualmente, estou criando um videogame em Java que provavelmente será distribuído pelo Steam. Obviamente, muitos usuários do Steam não terão o Java já instalado neste caso. Se isso acontecer, eu posso ter um pequeno iniciador nativo que mostra um diálogo informativo informando ao usuário que eles precisam instalar o Java ou simplesmente agrupar meu próprio ambiente de tempo de execução Java (especificamente o OpenJDK 8) com o meu jogo. Meu jogo será de código fechado, no entanto, é baseado em um mecanismo de jogo de código aberto (licenciado pela BSD).
Eu olhei pela licença do OpenJDK. É um projeto da GPL, o que significa que qualquer item vinculado a ela também precisa ser da GPL. No entanto, eles também têm a exceção do caminho de classe. Não tenho certeza se a parte de vinculação se aplica porque meu código não está vinculando a ele mais do que seria com ou sem agrupá-lo. Até onde eu sei, a exceção do caminho de classe não cobre esse caso de uso.
Há uma pergunta semelhante no Stack Overflow , no entanto, que se refere à situação em que um aplicativo é desenvolvido com o OpenJDK, refiro-me à distribuição com o OpenJDK.
Respostas:
Essa é uma pergunta importante, especialmente quando você considera o fato de que a Oracle alterou seus contratos de licenciamento e distribuição começando com Java 9, 10 e 11.
JDK -> Java Development Kit.
Os JDKs não são uma distribuição de 'tempo de execução' - um JDK é uma distribuição de desenvolvedor que contém um tempo de execução como parte do pacote configurável. Os JDKs não são 'distribuídos livremente' pelo desenvolvedor, eles são licenciados para o desenvolvedor. Se você ler o EULA do seu JDK, verá que ele vem com restrições à redistribuição.
JRE -> Java Runtime Engine.
O tempo de execução é (quase sempre) gratuito para download e distribuição, desde que você adira ao EULA para o JRE.
JDK e JRE são licenciados e distribuídos separadamente e independentemente um do outro.
Finalmente, você precisa saber que geralmente também não é permitido distribuir 'partes' ou componentes de um JDK - isso significa que você não deve extrair o JRE do JDK instalado e distribuí-lo ou agrupá-lo separadamente.
A melhor prática é separar o desenvolvimento da implantação.
fonte
Pelo que li na licença, você pode livremente redistribuir o programa, até cobrar para distribuí-lo.
Mas, como tenho experiência pessoal em liberar um jogo Java (embora não seja pago), acho melhor dizer ao usuário que o Java Runtime Environment é necessário na fonte de distribuição (forneça um link para o download do Java) ou tenha o aplicativo dê ao usuário um erro.
fonte