ओपीडीके को जीपीएल द्वारा अनुमत मालिकाना आवेदन के साथ बंडल करना?


16

मैं वर्तमान में जावा में एक वीडियो गेम बना रहा हूं जो कि संभवतः स्टीम के माध्यम से वितरित किया जाएगा। बेशक, कई स्टीम उपयोगकर्ताओं के पास इस मामले में जावा पहले से ही स्थापित नहीं होगा। यदि ऐसा होता है, तो मेरे पास एक छोटा देशी लांचर हो सकता है जो एक सूचनात्मक संवाद दिखाता है जिसमें उपयोगकर्ता को जावा स्थापित करने की आवश्यकता होती है, या बस अपने स्वयं के जावा रनटाइम वातावरण (विशेष रूप से ओपनजेडके 8) को अपने गेम के साथ बंडल करना है। मेरा गेम बंद स्रोत होगा, हालांकि यह एक ओपन सोर्स (बीएसडी लाइसेंस प्राप्त) गेम इंजन पर आधारित है।

मैंने हालांकि OpenJDK का लाइसेंस देखा। यह एक जीपीएल परियोजना है जिसका अर्थ है कि इसे जोड़ने वाली किसी भी चीज के लिए जीपीएल होना आवश्यक है। हालांकि, उनके पास क्लासपैथ अपवाद भी है। मुझे यकीन नहीं है कि यदि लिंकिंग भाग लागू होता है क्योंकि मेरा कोड इसे लिंक नहीं कर रहा है, तो इसके साथ या बिना इसे बंडल किए बिना इससे अधिक होगा। जहाँ तक मुझे पता है, क्लासपैथ अपवाद इस उपयोग के मामले को कवर नहीं करता है।

स्टैक ओवरफ्लो पर एक समान प्रश्न है , हालांकि यह उस स्थिति को संदर्भित करता है जहां एक आवेदन OpenJDK के साथ विकसित किया गया है, मैं OpenJDK के साथ वितरण करने की बात कर रहा हूं।


4
क्या आपने OpenJDK लाइसेंस पढ़ा है या इसी तरह के सवालों के लिए देखा है ? यह प्रश्न ऑन-टॉपिक है क्योंकि यह आपके स्वयं के सॉफ़्टवेयर को लाइसेंस देने के बारे में है: हालाँकि, आपके शोध को साझा करना बेहतर उत्तरों को आकर्षित करेगा।

हाँ मेरे पास है। मैंने इसे प्रतिबिंबित करने के लिए प्रश्न संपादित किया है।
john01dav


मैंने उस प्रश्न को पढ़ा और इसका उत्तर दिया। मुझे यकीन नहीं है कि यह वास्तव में इसी तरह के विषय पर होने के अलावा इस प्रश्न से कैसे संबंधित है।
john01dav

क्या यह OpenJDK होना चाहिए? कुछ अन्य जावा रनटाइम आपके बाइनरी रनटाइम को आपके वितरण में जीपीएल शर्तों को जोड़े बिना वितरण की अनुमति दे सकते हैं। जैसे देखें java.com/en/download/faq/distribution.xml
Brandin

जवाबों:


5

यह एक महत्वपूर्ण प्रश्न है, खासकर जब आप इस तथ्य पर विचार करते हैं कि ओरेकल ने अपने लाइसेंस और वितरण समझौतों को जावा 9, 10, और 11 के साथ शुरू किया है।

JDK -> जावा डेवलपमेंट किट।

JDK एक 'रनटाइम' वितरण नहीं है - JDK एक डेवलपर का वितरण है जो बंडल के हिस्से के रूप में रनटाइम को समाहित करने के लिए होता है। डेवलपर द्वारा JDK के 'स्वतंत्र रूप से वितरण योग्य' नहीं हैं, उन्हें डेवलपर को लाइसेंस दिया जाता है। यदि आप अपने JDK के लिए EULA पढ़ते हैं, तो आप देखेंगे कि यह पुनः वितरण पर प्रतिबंध के साथ आता है।

JRE -> जावा रनटाइम इंजन।

रनटाइम के (लगभग हमेशा) डाउनलोड करने और वितरित करने के लिए स्वतंत्र हैं बशर्ते कि आप JRE के लिए EULA का पालन करें।

जेडीके और जेआरई लाइसेंस प्राप्त हैं और एक-दूसरे के अलग-अलग और स्वतंत्र रूप से वितरित किए जाते हैं।

अंत में, आपको यह जानने की आवश्यकता है कि आपको आम तौर पर या तो JDK के 'भागों' या घटकों को वितरित करने की अनुमति नहीं है - इसका मतलब है कि आपको अपने स्थापित JDK से JRE निकालने और इसे अलग से वितरित या बंडल करने की आवश्यकता नहीं है।

सबसे अच्छा अभ्यास तैनाती से विकास को अलग करना है।

  • आप एक JDK पर विकसित होते हैं और परियोजना को तैनात करते हैं
  • तैनाती में एक JRE पर निर्भरता है

-1

लाइसेंस में जो कुछ भी मैंने पढ़ा है उससे आप स्वतंत्र रूप से कार्यक्रम को पुनर्वितरित करने में सक्षम हैं, यहां तक ​​कि इसे वितरित करने के लिए शुल्क भी।

लेकिन जैसा कि मेरे पास जावा गेम जारी करने के साथ व्यक्तिगत अनुभव है (हालांकि भुगतान नहीं किया गया है) मुझे यह बताने के लिए बेहतर है कि उपयोगकर्ता को यह बताना बेहतर होगा कि जावा रनटाइम एनवायरनमेंट या तो वितरण स्रोत पर आवश्यक है (उन्हें जावा डाउनलोड के लिए लिंक दें) या आवेदन करना होगा उपयोगकर्ता को एक त्रुटि दें।


2
क्या आप कुछ कारण बता सकते हैं कि उपयोगकर्ता को डाउनलोड करने की अनुमति बेहतर क्यों हो सकती है?
8

3
खैर, मेरे पास पहले से ही (कई) JRE स्थापित हैं; प्रत्येक आवेदन बंडल 150+ एमबी "बस के मामले में" मेरे लिए व्यर्थ लगता है। इसके अलावा, एक एप्लिकेशन-विशिष्ट JRE होने से इस तरह के मुद्दे पैदा होते हैं: "मेरे JRE में ये ट्वीक हैं, यह आपके ऐप में काम क्यों नहीं करता है?" stackoverflow.com/a/21417887/19746
पिस्कॉर ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.