รวม OpenJDK กับแอปพลิเคชันที่เป็นกรรมสิทธิ์ที่อนุญาตโดย GPL หรือไม่


16

ขณะนี้ฉันกำลังสร้างวิดีโอเกมใน Java ซึ่งมีแนวโน้มที่จะเผยแพร่ผ่าน Steam มากที่สุด แน่นอนว่าผู้ใช้ Steam ส่วนใหญ่จะไม่ได้ติดตั้ง Java ไว้ในกรณีนี้ หากสิ่งนี้เกิดขึ้นฉันสามารถมีตัวเรียกใช้งานแบบเนทีฟขนาดเล็กซึ่งแสดงข้อความโต้ตอบบอกผู้ใช้ว่าพวกเขาต้องการติดตั้ง Java หรือเพียงแค่รวมสภาพแวดล้อมรันไทม์ Java ของฉันเอง (โดยเฉพาะ OpenJDK 8) กับเกมของฉัน เกมของฉันจะถูกปิดอย่างไรก็ตามมันขึ้นอยู่กับเอ็นจิ้นเกมโอเพนซอร์ซ

ฉันดูว่าใบอนุญาตของ OpenJDK มันเป็นโครงการ GPL ซึ่งหมายความว่าอะไรก็ตามที่เชื่อมโยงกับมันต้องเป็น GPL เช่นกัน อย่างไรก็ตามพวกเขายังมีข้อยกเว้น classpath ฉันไม่แน่ใจว่าส่วนการเชื่อมโยงใช้หรือไม่เพราะรหัสของฉันไม่ได้เชื่อมโยงกับส่วนนั้นมากกว่าที่จะมีหรือไม่มีการรวมกลุ่ม เท่าที่ฉันทราบข้อยกเว้น classpath ไม่ครอบคลุมกรณีการใช้งานนี้

มีคำถามที่คล้ายกันใน Stack Overflowอย่างไรก็ตามที่อ้างถึงสถานการณ์ที่แอปพลิเคชันได้รับการพัฒนาด้วย OpenJDK ฉันหมายถึงการเผยแพร่ด้วย OpenJDK


4
คุณได้อ่านใบอนุญาต OpenJDKหรือมองหาคำถามที่คล้ายกัน ? คำถามนี้เป็นหัวข้อที่เกี่ยวกับการอนุญาตให้ใช้สิทธิ์ซอฟต์แวร์ของคุณ: อย่างไรก็ตามการแบ่งปันการวิจัยของคุณจะดึงดูดคำตอบที่ดีกว่า

ใช่ฉันมี. ฉันได้แก้ไขคำถามเพื่อสะท้อนสิ่งนี้
john01dav


ฉันอ่านคำถามนั้นและเป็นคำตอบ ฉันไม่แน่ใจว่ามันเกี่ยวข้องกับคำถามนี้อย่างไรนอกจากอยู่ในหัวข้อที่คล้ายกัน
john01dav

จำเป็นต้องเป็น OpenJDK หรือไม่ Java runtime อื่น ๆ อาจอนุญาตให้ทำการกระจายของ binary runtime โดยไม่ต้องเพิ่มคำศัพท์ GPL ในการกระจายของคุณ ดูเช่นjava.com/en/download/faq/distribution.xml
Brandin

คำตอบ:


5

นี่เป็นคำถามที่สำคัญโดยเฉพาะอย่างยิ่งเมื่อคุณพิจารณาข้อเท็จจริงที่ว่า Oracle มีการเปลี่ยนแปลงข้อตกลงใบอนุญาตและการจัดจำหน่ายของพวกเขาเริ่มต้นด้วย Java 9, 10, & 11

JDK -> ชุดพัฒนา Java

JDK ไม่ใช่การกระจาย 'รันไทม์' - JDK เป็นการกระจายของผู้พัฒนาที่เกิดขึ้นเพื่อให้มีรันไทม์เป็นส่วนหนึ่งของบันเดิล นักพัฒนาซอฟต์แวร์ JDK นั้นไม่ได้เป็น 'ผู้จำหน่ายอิสระ' โดยอิสระพวกเขาได้รับใบอนุญาตจากผู้พัฒนา หากคุณอ่าน EULA สำหรับ JDK ของคุณคุณจะเห็นว่ามีข้อ จำกัด ในการเผยแพร่ซ้ำ

JRE -> Java Runtime Engine

รันไทม์ของ (ฟรีเกือบตลอดเวลา) เพื่อดาวน์โหลดและแจกจ่ายหากคุณปฏิบัติตาม EULA สำหรับ JRE

JDK และ JRE ได้รับอนุญาตและแจกจ่ายแยกกันและเป็นอิสระจากกัน

ในที่สุดคุณจำเป็นต้องรู้ว่าโดยทั่วไปคุณไม่ได้รับอนุญาตให้เผยแพร่ 'ส่วน' หรือส่วนประกอบของ JDK - หมายความว่าคุณไม่ควรแยก JRE จาก JDK ที่ติดตั้งของคุณและกระจายหรือรวมกลุ่มแยกต่างหาก

แนวทางปฏิบัติที่ดีที่สุดคือการแยกการพัฒนาออกจากการปรับใช้

  • คุณพัฒนาบนJDKและปรับใช้โครงการ
  • การปรับใช้มีการพึ่งพาJRE

-1

จากสิ่งที่ฉันอ่านในใบอนุญาตคุณสามารถแจกจ่ายโปรแกรมได้อย่างอิสระแม้แต่คิดค่าใช้จ่ายเพื่อแจกจ่าย

แต่เนื่องจากฉันมีประสบการณ์ส่วนตัวเกี่ยวกับการปล่อยเกม Java (ไม่จ่ายเงิน) ฉันคิดว่ามันดีกว่าที่จะบอกผู้ใช้ว่า Java Runtime Environment นั้นจำเป็นต้องมีในแหล่งแจกจ่าย (ให้ลิงก์ไปยังการดาวน์โหลด Java) หรือมีแอปพลิเคชัน ให้ข้อผิดพลาดกับผู้ใช้


2
คุณสามารถให้เหตุผลบางอย่างว่าทำไมการอนุญาตให้ผู้ใช้ดาวน์โหลดอาจดีกว่า
ziggystar

3
ฉันได้ติดตั้ง JRE หลายตัวแล้ว การมีแอปพลิเคชันแต่ละชุดมีขนาด 150+ MB "ในกรณี" ดูเหมือนว่าไม่มีประโยชน์เลยสำหรับฉัน นอกจากนี้การมี JRE เฉพาะแอปนำไปสู่ปัญหาเช่นนี้: "JRE ของฉันมีการปรับแต่งเหล่านี้ทำไมมันไม่ทำงานในแอปของคุณ?" stackoverflow.com/a/21417887/19746
Piskvor ออกจากอาคาร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.