Пакет OpenJDK з власною програмою, дозволеною GPL?


16

Зараз я роблю на Java відеогра, яка, швидше за все, поширюється через Steam. Звичайно, у багатьох користувачів Steam в цьому випадку вже не буде встановлена ​​Java. Якщо це трапиться, я можу або мати невеликий нативний запуск, який показує інформативний діалог, який повідомляє користувачеві, що їм потрібно встановити Java, або просто поєднати мою власну середовище виконання Java (зокрема OpenJDK 8) зі своєю грою. Моя гра буде закритим кодом, однак вона заснована на ігровому двигуні з відкритим кодом (BSD).

Я виглядав, хоча ліцензія OpenJDK. Це проект GPL, який означає, що все, що пов'язане з ним, має бути також GPL. Однак у них є також виняток classpath. Я не впевнений, чи застосовується частина посилань, оскільки мій код не посилається на нього більше, ніж був би з пакетом або без його з'єднання. Наскільки мені відомо, виняток classpath не охоплює цей випадок використання.

Існує аналогічне питання щодо Stack Overflow , однак, що стосується ситуації, коли додаток розробляється з OpenJDK, я маю на увазі розповсюдження з OpenJDK.


4
Чи читали ви ліцензію OpenJDK або шукали подібні запитання ? Це питання є тематичним, оскільки йдеться про ліцензування власного програмного забезпечення: однак обмін вашими дослідженнями приверне кращі відповіді.

Так, у мене є. Я відредагував питання, щоб це відобразити.
john01dav


Я прочитав це питання, і це відповіді. Я не впевнений, як це насправді стосується цього питання, окрім того, щоб бути на подібній темі.
john01dav

Чи має бути OpenJDK? Деякі інші версії Java можуть дозволити розповсюдження їх бінарного часу виконання без додавання термінів GPL до вашого дистрибутива. Дивіться, наприклад, java.com/en/download/faq/distribution.xml
Брандін

Відповіді:


5

Це важливе питання, особливо якщо врахувати той факт, що Oracle змінив свої ліцензійні угоди та розповсюдження, починаючи з Java 9, 10 та 11.

JDK -> Java Development Kit.

JDK не є дистрибутивом "час виконання" - JDK - це дистрибутива розробника, яка, як правило, містить час виконання як частину пакету. JDK не розробляються "вільно", вони ліцензуються розробником. Якщо ви прочитаєте EULA для свого JDK, ви побачите, що він обмежується перерозподілом.

JRE -> Java Runtime Engine.

Програми виконання (майже завжди) можуть безкоштовно завантажувати та розповсюджувати, якщо ви дотримуєтесь EULA для JRE.

Ліцензії JDK та JRE ліцензуються та розповсюджуються окремо та незалежно один від одного.

Нарешті, вам потрібно знати, що вам зазвичай заборонено розповсюджувати "частини" або компоненти JDK - це означає, що ви не повинні витягувати JRE зі свого встановленого JDK і розповсюджувати або зв'язувати його окремо.

Найкраща практика - це відокремити розробку від розгортання.

  • Ви розробляєте JDK і розгортаєте проект
  • Розгортання залежить від JRE

-1

З того, що я прочитав у ліцензії, ви вільно можете перерозподілити програму, навіть вимагати її розповсюдження.

Але оскільки у мене є особистий досвід випуску гри на Java (хоча не оплачується), я вважаю, що краще просто сказати користувачеві, що середовище виконання Java Java потрібно або в джерелі дистрибуції (дати їм посилання на завантаження Java), або мати додаток дати користувачеві помилку.


2
Чи можете ви навести кілька причин, чому дозволити завантаження користувача може бути кращим?
зиггістар

3
Ну, у мене вже встановлено (кілька) JRE; наявність у кожного пакету програм 150+ МБ "на всякий випадок" здається мені досить безглуздим. Крім того, наявність JRE для конкретного додатка призводить до таких проблем: "мій JRE має ці налаштування, чому він не працює у ВАШІй програмі?" stackoverflow.com/a/21417887/19746
Piskvor покинув будівлю
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.