Je fais actuellement un jeu vidéo en Java qui sera très probablement distribué via Steam. Bien sûr, de nombreux utilisateurs de Steam n'auront pas déjà Java installé dans ce cas. Si cela se produit, je peux soit avoir un petit lanceur natif qui affiche un dialogue informatif indiquant à l'utilisateur qu'il doit installer Java, soit simplement regrouper mon propre environnement d'exécution Java (en particulier OpenJDK 8) avec mon jeu. Mon jeu sera en source fermée, mais il est basé sur un moteur de jeu open source (licence BSD).
J'ai regardé la licence d'OpenJDK. Il s'agit d'un projet GPL, ce qui signifie que tout ce qui y est lié doit également être GPL. Cependant, ils ont également l'exception classpath. Je ne sais pas si la partie de liaison s'applique parce que mon code ne s'y lie pas plus qu'il ne le serait avec ou sans le regrouper. Pour autant que je sache, l'exception classpath ne couvre pas ce cas d'utilisation.
Il y a une question similaire sur Stack Overflow , mais qui se réfère à la situation où une application est développée avec OpenJDK, je fais référence à la distribution avec OpenJDK.
Réponses:
C'est une question importante, surtout si l'on considère le fait qu'Oracle a modifié ses accords de licence et de distribution à partir de Java 9, 10 et 11.
JDK -> Kit de développement Java .
Les JDK ne sont pas une distribution «runtime» - Un JDK est une distribution de développeur qui contient un runtime dans le cadre du bundle. Les JDK ne sont pas «librement distribuables» par le développeur, ils sont concédés sous licence au développeur. Si vous lisez le CLUF de votre JDK, vous verrez qu'il s'accompagne de restrictions sur la redistribution.
JRE -> Java Runtime Engine.
Les temps d'exécution sont (presque toujours) gratuits à télécharger et à distribuer à condition que vous respectiez le CLUF pour le JRE.
Les JDK et JRE sont concédés sous licence et distribués séparément et indépendamment l'un de l'autre.
Enfin, vous devez savoir que vous n'êtes généralement pas autorisé à distribuer des `` parties '' ou des composants d'un JDK - cela signifie que vous n'êtes pas censé extraire le JRE de votre JDK installé et le distribuer ou le regrouper séparément.
La meilleure pratique consiste à séparer le développement du déploiement.
la source
D'après ce que j'ai lu dans la licence, vous pouvez librement redistribuer le programme, même facturer pour le distribuer.
Mais comme j'ai une expérience personnelle avec la sortie d'un jeu Java (non payé cependant), je trouve préférable de simplement dire à l'utilisateur que Java Runtime Environment est requis soit sur la source de distribution (leur donner un lien vers le téléchargement Java) ou avoir l'application donner à l'utilisateur une erreur.
la source