Ich mache gerade ein Videospiel in Java, das höchstwahrscheinlich über Steam verbreitet wird. Natürlich haben in diesem Fall viele Steam-Benutzer Java noch nicht installiert. In diesem Fall kann ich entweder einen kleinen nativen Launcher verwenden, der dem Benutzer in einem informativen Dialogfeld mitteilt, dass er Java installieren muss, oder einfach meine eigene Java-Laufzeitumgebung (insbesondere OpenJDK 8) mit meinem Spiel bündeln. Mein Spiel wird Closed Source sein, es basiert jedoch auf einer Open Source (BSD-lizenzierten) Spiel-Engine.
Ich habe mir die OpenJDK-Lizenz angesehen. Es ist ein GPL-Projekt, was bedeutet, dass alles, was damit verknüpft ist, auch GPL sein muss. Sie haben jedoch auch die Klassenpfad-Ausnahme. Ich bin nicht sicher, ob der Linking-Teil zutrifft, da mein Code nicht mehr mit ihm verlinkt, als es mit oder ohne Bündelung wäre. Soweit ich weiß, deckt die Klassenpfad-Ausnahme diesen Anwendungsfall nicht ab.
Es gibt eine ähnliche Frage zu Stack Overflow , die sich jedoch auf die Situation bezieht, in der eine Anwendung mit OpenJDK entwickelt wird. Ich beziehe mich auf das Verteilen mit OpenJDK.
Antworten:
Dies ist eine wichtige Frage, insbesondere wenn Sie die Tatsache berücksichtigen, dass Oracle seine Lizenz- und Vertriebsvereinbarungen ab Java 9, 10 und 11 geändert hat.
JDK -> Java Development Kit.
JDKs sind keine "Laufzeit" -Distribution - Ein JDK ist eine Entwicklerdistribution, die zufällig eine Laufzeit als Teil des Bundles enthält. JDKs sind vom Entwickler nicht "frei vertreibbar", sondern werden an den Entwickler lizenziert. Wenn Sie die EULA für Ihr JDK lesen, werden Sie feststellen, dass die Weiterverteilung eingeschränkt ist.
JRE -> Java Runtime Engine.
Runtime's können (fast immer) kostenlos heruntergeladen und verteilt werden, sofern Sie die EULA für die JRE einhalten.
JDKs und JREs werden separat und unabhängig voneinander lizenziert und vertrieben.
Schließlich müssen Sie wissen, dass Sie im Allgemeinen auch keine "Teile" oder Komponenten eines JDK vertreiben dürfen. Dies bedeutet, dass Sie die JRE nicht aus Ihrem installierten JDK extrahieren und separat verteilen oder bündeln dürfen.
Am besten trennen Sie die Entwicklung von der Bereitstellung.
quelle
Nach dem, was ich in der Lizenz gelesen habe, können Sie das Programm kostenlos weiterverteilen oder sogar vertreiben.
Da ich jedoch persönliche Erfahrungen mit der Veröffentlichung eines Java-Spiels habe (allerdings nicht bezahlt), ist es besser, dem Benutzer zu sagen, dass Java Runtime Environment entweder auf der Distributionsquelle erforderlich ist (geben Sie ihnen einen Link zum Java-Download) oder dass er die Anwendung hat Geben Sie dem Benutzer einen Fehler.
quelle