В настоящее время я делаю видеоигру на Java, которая, скорее всего, будет распространяться через Steam. Конечно, у многих пользователей Steam в этом случае Java уже не установлена. Если это произойдет, у меня может быть небольшой собственный модуль запуска, который показывает информативный диалог, сообщающий пользователю, что ему нужно установить Java, или просто связываю мою собственную среду выполнения Java (в частности, OpenJDK 8) с моей игрой. Моя игра будет с закрытым исходным кодом, однако она основана на игровом движке с открытым исходным кодом (по лицензии BSD).
Я посмотрел лицензию OpenJDK. Это проект GPL, что означает, что все, что с ним связано, также должно быть GPL. Тем не менее, они также имеют исключение classpath. Я не уверен, применима ли часть ссылки, потому что мой код не ссылается на нее больше, чем с или без связывания. Насколько я знаю, исключение classpath не охватывает этот вариант использования.
Существует аналогичный вопрос о переполнении стека , однако он относится к ситуации, когда приложение разрабатывается с помощью OpenJDK, я имею в виду распространение с помощью OpenJDK.
Ответы:
Это важный вопрос, особенно если учесть тот факт, что Oracle изменила свои лицензионные и дистрибьюторские соглашения, начиная с Java 9, 10 и 11.
JDK -> Java Development Kit.
JDK - это не дистрибутив «времени выполнения» - JDK - это дистрибутив разработчика, который содержит среду выполнения как часть пакета. JDK не являются «свободно распространяемыми» разработчиком, они лицензируются для разработчика. Если вы прочитаете лицензионное соглашение для своего JDK, вы увидите, что оно имеет ограничения по перераспределению.
JRE -> Java Runtime Engine.
Среда выполнения (почти всегда) бесплатна для загрузки и распространения при условии, что вы придерживаетесь лицензионного соглашения для JRE.
JDK и JRE лицензируются и распространяются отдельно и независимо друг от друга.
Наконец, вам нужно знать, что вам, как правило, запрещено распространять «части» или компоненты JDK - это означает, что вы не должны извлекать JRE из установленного JDK и распространять или связывать его отдельно.
Рекомендуется отделять разработку от развертывания.
источник
Из того, что я прочитал в лицензии, вы можете свободно распространять программу, даже платить за ее распространение.
Но поскольку у меня есть личный опыт с выпуском Java-игры (хотя и не платной), я считаю, что лучше просто сказать пользователю, что среда выполнения Java требуется либо в источнике дистрибутива (дать им ссылку на загрузку Java), либо в приложении. дать пользователю ошибку.
источник