Saat ini saya membuat video game di Jawa yang kemungkinan besar akan didistribusikan melalui Steam. Tentu saja, banyak pengguna Steam belum menginstal Java dalam kasus ini. Jika ini terjadi, saya dapat memiliki peluncur asli kecil yang memperlihatkan dialog informatif yang memberi tahu pengguna bahwa mereka perlu menginstal Java, atau cukup bundel lingkungan Java runtime saya sendiri (khususnya OpenJDK 8) dengan permainan saya. Game saya akan menjadi sumber tertutup, namun didasarkan pada mesin game sumber terbuka (berlisensi BSD).
Saya memang melihat lisensi OpenJDK. Ini adalah proyek GPL yang berarti bahwa apa pun yang menghubungkannya harus juga GPL. Namun, mereka juga memiliki pengecualian classpath. Saya tidak yakin apakah bagian penautan berlaku karena kode saya tidak menautkannya lebih daripada dengan atau tanpa bundling. Sejauh yang saya tahu, pengecualian classpath tidak mencakup kasus penggunaan ini.
Ada pertanyaan serupa tentang Stack Overflow , namun itu merujuk pada situasi di mana aplikasi dikembangkan dengan OpenJDK, saya mengacu pada distribusi dengan OpenJDK.
Jawaban:
Ini adalah pertanyaan penting, terutama ketika Anda mempertimbangkan fakta bahwa Oracle telah mengubah perjanjian lisensi dan distribusi mereka mulai dengan Java 9, 10, & 11.
JDK -> Java Development Kit.
JDK bukan distribusi 'runtime' - JDK adalah distribusi pengembang yang berisi runtime sebagai bagian dari bundel. JDK tidak 'didistribusikan secara bebas' oleh pengembang, mereka dilisensikan kepada pengembang. Jika Anda membaca EULA untuk JDK Anda, Anda akan melihat bahwa itu disertai dengan pembatasan distribusi ulang.
JRE -> Java Runtime Engine.
Runtime's (hampir selalu) gratis untuk mengunduh dan mendistribusikan asalkan Anda mematuhi EULA untuk JRE.
JDK dan JRE dilisensikan dan didistribusikan secara terpisah dan terpisah satu sama lain.
Terakhir, Anda perlu tahu bahwa Anda secara umum juga tidak diperbolehkan mendistribusikan 'bagian' atau komponen JDK - ini artinya Anda tidak seharusnya mengekstrak JRE dari JDK yang Anda instal dan mendistribusikan atau mengelompokkannya secara terpisah.
Praktik terbaik adalah memisahkan pengembangan dari penyebaran.
sumber
Dari apa yang saya baca di lisensi Anda dapat dengan bebas mendistribusikan kembali program, bahkan biaya untuk mendistribusikannya.
Tetapi karena saya memiliki pengalaman pribadi dengan merilis game Java (tidak dibayar meskipun) saya merasa lebih baik untuk hanya memberitahu pengguna bahwa Java Runtime Environment diperlukan baik pada sumber distribusi (memberi mereka tautan ke unduhan Java) atau memiliki aplikasi beri pengguna kesalahan.
sumber