เราสามารถใช้ Java เพื่อการใช้งานเชิงพาณิชย์ได้หรือไม่?


49

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



2
@Sathya คำถามนั้นเกี่ยวกับการใช้ปลั๊กอิน GPL ในแอป Java คำถามนี้ดูเหมือนจะเกี่ยวกับความถูกต้องตามกฎหมายของการใช้ Java เอง
อดัมเลียร์

6
@Shisoft พิจารณาว่ามีแอปพลิเคชั่น Java เชิงพาณิชย์กี่ตัวที่นั่นฉันไม่คิดว่าคุณจะกังวลอะไร คุณจะเห็นอย่างน้อยสองสามคดีถ้ามันไม่เป็นไร
Adam Lear

Java SE ไม่ใช่ GPL อีกต่อไปมันเป็น BCL Oracle มีอิสระในการเปลี่ยนแปลงใบอนุญาตตามที่พวกเขาต้องการ (คำถามที่พบบ่อย # 8 oracle.com/technetwork/java/javase/overview/ ...... ) ที่ถูกกล่าวว่า Oracle ไม่สามารถเปลี่ยนรุ่นเก่าของ Java ออกภายใต้ GPL
snmcdonald

3
@snmcdonald OpenJDK 6 และ 7 ยังคงได้รับสิทธิ์การใช้งานเป็น GPL ด้วย Classpath Exception "Sun" JDK 6 และก่อนหน้านี้ไม่เคยเป็น GPL (IANAL)
Tom Hawtin - tackline

คำตอบ:


80

สิทธิ์การใช้งาน GPL นำไปใช้กับแหล่งที่มาของ Java เองไม่ใช่กับแอปพลิเคชันที่สร้างโดยใช้ Java คุณควรกังวลหากคุณขยาย / แก้ไขภาษา Java เองและขายผลลัพธ์เป็นผลิตภัณฑ์เชิงพาณิชย์ (หรือใบอนุญาตที่ไม่ใช่ GPL อื่น ๆ )


8
นี่เป็นสิ่งที่มืดมนที่สุดซึ่งเป็นเหตุผลว่าทำไม GPL ถึงมีข้อยกเว้น Classpath โค้ดที่รันบน JDK นั้นเชื่อมโยงกับไลบรารี Java รหัสที่เชื่อมโยงกับรหัส GPL ควรเป็น GPLed (ขึ้นอยู่กับการตีความของเขตอำนาจศาลที่เกี่ยวข้อง) (ฉันไม่ใช่เลเยอร์!)
Tom Hawtin - tackline

3
@tom - มันถูกเรียกว่าข้อยกเว้นไลบรารีมาตรฐาน - มิฉะนั้นรหัสทั้งหมดที่เรียกใช้ในเคอร์เนล GPLed Linux จะต้องเป็น GPL
Martin Beckett

4
@Tom: ซึ่งเป็นเหตุผลว่าทำไมข้อยกเว้น classpath มีอยู่เพื่อให้แน่ใจว่าโค้ด Java ที่คอมไพล์แล้ว (ซึ่งทั้งหมดนั้นต้องอาศัยไลบรารีมาตรฐานซึ่งเป็น GPL หากคุณดาวน์โหลด OpenJDK รีลีสไม่ใช่ถ้าคุณดาวน์โหลดรีลีสเชิงพาณิชย์) จีพี
jwenting

คำตอบที่ถูกต้องเท่านั้นที่ถูกต้องเพราะมันจะถูกปล่อยออกภายใต้ GPL ยกเว้น classpath และไม่ GPL ดิบ
ihebiheb

19

OpenJDK ได้รับใบอนุญาตภายใต้ GPL กับข้อยกเว้น Classpath ส่วนข้อยกเว้น Classpath มีความสำคัญ ช่วยให้คุณใช้ OpenJDK กับซอฟต์แวร์ของใบอนุญาตใด ๆ ไม่ใช่แค่ GPL โดยเฉพาะอย่างยิ่งคุณสามารถใช้ OpenJDK กับซอฟต์แวร์ที่เป็นกรรมสิทธิ์


2
@Shisoft การใช้งาน "Sun" ของ Java SE 6 และก่อนหน้านี้ได้รับใบอนุญาตภายใต้ใบอนุญาตที่หลากหลายซึ่งบางส่วนนั้นฟรีเหมือนในเบียร์ แต่ยังไม่มีรสชาติใด ๆ ของ GPL OpenJDKs 6 & 7 (6 เป็นพอร์ตย้อนหลัง 7), เป็น GPLv2 พร้อม Classpath Exception มันมีจุดประสงค์ที่จะเปิดตัว JDK7 "Sun" เช่นกัน
Tom Hawtin - tackline

17

Java JDK binary ไม่ใช่ GPL เป็น BCL Oracle มีอิสระในการเปลี่ยนแปลงใบอนุญาตตามที่พวกเขาต้องการ ( คำถามที่พบบ่อย # 8 ) ที่ถูกกล่าวว่า Oracle ไม่สามารถ renege Java รุ่นเก่าที่เผยแพร่ภายใต้ GPL

ศึกษาใบอนุญาตเสมอสำหรับข้อมูลที่ทันสมัย ณ วันนี้ใบอนุญาต :

การใช้ภายใน / ภายใน บริษัท : ไบนารีแพลตฟอร์ม Java SE (JDK และ JRE) ได้รับอนุญาตภายใต้ลิขสิทธิ์ Binary Code (BCL) ของซันที่มีเงื่อนไขเพิ่มเติม สำหรับนักพัฒนาและผู้ใช้ส่วนใหญ่ไบนารี JDK และไบนารี JRE นั้นเป็นสิ่งที่จำเป็นสำหรับการสัมผัสกับโลกของเทคโนโลยี Java ใช้: ไบนารี JDK และ JRE นั้นไม่มีค่าใช้จ่ายจาก Sun (ต่อข้อกำหนดของ BCL) สำหรับใช้กับคอมพิวเตอร์ส่วนบุคคลบนเดสก์ท็อป การใช้ JDK หรือ JRE สำหรับอุปกรณ์ฝังตัวและสภาพแวดล้อมการประมวลผลอื่น ๆ อาจต้องเสียค่าธรรมเนียมใบอนุญาตจาก Sun อ่านเพิ่มเติมเกี่ยวกับการใช้งาน Java SE แบบฝังหรือติดต่อสำนักงาน Sun ในพื้นที่ของคุณเพื่อขอใบอนุญาต

โปรดทราบว่าคุณไม่สามารถเผยแพร่ Java SE บนอุปกรณ์ฝังตัว (คิดว่า Google Android) ตามที่ระบุไว้ในคำถามที่พบบ่อย

ซอร์ส Java SDK พร้อมใช้งานภายใต้สิทธิ์การใช้งาน SCSL และ JPL

ซอร์สโค้ด: ซอร์สโค้ด JDK นั้นมีให้สำหรับนักวิจัยและผู้อื่นที่สนใจในการสำรวจรายละเอียดของ JDK แต่ละรุ่นมีสิทธิ์ใช้งานของตัวเองหรือชุดของสิทธิ์ใช้งานซึ่งมักมีข้อกำหนดสิทธิ์ใช้งานแหล่งชุมชน Sun (SCSL) ซันเพิ่งเริ่มให้บริการการเข้าถึงซอร์สโค้ด JDK ที่ง่ายขึ้นภายใต้ใบอนุญาตการวิจัย Java (JRL) ใหม่ โปรดทราบว่าในทั้งสองกรณี (SCSL หรือ JRL) หากคุณตัดสินใจที่จะใช้โครงการของคุณภายในเพื่อการใช้งานอย่างมีประสิทธิภาพหรือแจกจ่ายผลิตภัณฑ์ของคุณให้ผู้อื่นคุณต้องลงนามในข้อตกลงทางการค้าและปฏิบัติตามข้อกำหนดความเข้ากันได้ของ Java ติดต่อสำนักงานซันในพื้นที่ของคุณเพื่อรับข้อตกลง


2
-1 ถ้อยคำของคุณแนะนำว่าการดาวน์โหลด JDK ของ Sun / Oracle นั้นเป็น GPL แต่ไม่นาน นี่ไม่เป็นความจริง. พวกเขาไม่เคยเป็น GPL สิ่งที่เป็นและเผยแพร่ภายใต้ GPL คือOpenJDKซึ่งแตกต่างจากการเปิดตัว JDK เชิงพาณิชย์ ในฐานะผู้ถือลิขสิทธิ์ของ OpenJDK พวกเขามีอิสระที่จะให้บริการเชิงพาณิชย์และไม่ใช่ GPL การเผยแพร่อนุพันธ์ของ OpenJDK
Chris Jester-Young

2
นอกจากนี้ในคำถามที่พบบ่อยเกี่ยวกับOpenJDK : "Oracle JDK ขึ้นอยู่กับรหัสที่มาของ OpenJDK นอกจากนี้ยังมีส่วนประกอบแบบปิดแหล่งที่มาผลลัพธ์สุดท้ายได้รับอนุญาตภายใต้ใบอนุญาตรหัสไบนารี" สิ่งที่ปิดแหล่งที่มาคือสิ่งที่มาจากบุคคลที่สามที่พวกเขาไม่สามารถรับ relicensed สำหรับการแจกจ่าย OpenJDK ที่สมบูรณ์ฟรีอย่างแท้จริงมีIcedTea (ซึ่งเป็นสิ่งที่ผู้จัดจำหน่าย GNU / Linux ส่วนใหญ่ใช้เป็นการนำ Java มาใช้หลัก)
Chris Jester-Young

5

คุณกำลังสับสนหลายสิ่ง

  • GPL เป็นใบอนุญาตที่เกี่ยวข้องกับการแจกจ่ายซอฟต์แวร์ซ้ำ แม้ว่าคอมไพเลอร์ Java ที่คุณใช้เป็น GPL'ed สิ่งนี้จะไม่ป้องกันคุณจากการแจกจ่ายซอฟต์แวร์ของคุณเองเพราะนั่นแตกต่างจากการแจกจ่าย Java ซ้ำ (และรันไทม์ Java สามารถดาวน์โหลดแยกจาก Oracle ได้)
  • GPL ไม่เข้ากันกับซอฟต์แวร์เชิงพาณิชย์ บางคำตอบที่นี่ดูเหมือนจะทำให้เกิดความสับสน "กรรมสิทธิ์เทียบกับฟรี (ในคำพูด)" กับ "พาณิชย์เทียบกับฟรี (เหมือนในเบียร์)" เป็นความจริงที่ต้องระมัดระวังเมื่อขายซอฟต์แวร์ GPL'ed (การขายถือว่าเป็น "การแจกจ่ายซ้ำ") แต่ก็เป็นไปไม่ได้ที่จะทำ
  • การติดตั้ง Java ของ Oracle ไม่ได้เป็น GPL'ed อ่านใบอนุญาตของที่นี่
  • Open JDK เป็นการนำ GPL'ed มาใช้แต่ดังที่ได้กล่าวมาแล้วสิ่งนี้ไม่ได้ทำให้มันขัดกับซอฟต์แวร์เชิงพาณิชย์

1

อย่างที่ฉันทราบตามใบอนุญาตปัจจุบัน Java อยู่ภายใต้ BCL (Sun's Binary Code License) คุณสามารถใช้ JDK และ JRE ฟรีเพื่อการใช้งานเชิงพาณิชย์ ใช้ ECLIPSE เป็น IDE ของคุณเป็นจุดเข้าใช้เพื่อพัฒนาโค้ด Java ของคุณ มันเป็นโอเพนซอร์สดังนั้นคุณไม่จำเป็นต้องมี lisence เหมือนกัน เมื่อคุณทำงานในโครงการคุณจะต้องมีเครื่องมืออื่น ๆ อีกมากมายในการทำสิ่งต่าง ๆ ฟังก์ชั่นที่จำเป็นส่วนใหญ่จะได้รับเป็นปลั๊กอิน (ดาวน์โหลดได้) ใน eclipse


-1

หลังจากการเคลื่อนไหวไปยัง Java BLC การออกใบอนุญาตการใช้งาน Java ทั้งหมดอาจมีการตีความซึ่งหมายถึง "ติดต่อ Oracle หากคุณต้องการแน่ใจจริงๆ"

นั่นหมายถึงจ่ายถ้าพวกเขาต้องการให้คุณจ่าย ตาม BLC, Java สามารถใช้ได้อย่างอิสระสำหรับ "คอมพิวเตอร์เดสก์ท็อปและเซิร์ฟเวอร์วัตถุประสงค์ทั่วไป" (ในhttp://www.oracle.com/technetwork/java/javase/terms/license/index.html ) ซึ่งมีคำจำกัดความรวมถึงคำต่างๆ "การคำนวณเอนกประสงค์"

ฉันไม่รู้ว่าการคำนวณของฉันเป็นการคำนวณทั่วไปหรือไม่ - คุณแน่ใจหรือไม่ว่าเป็นของคุณ Oracle ได้เพิ่มส่วนคำสั่งเช่น "ใช้สำหรับฟังก์ชันการคำนวณทั่วไปภายใต้การควบคุมผู้ใช้ปลายทาง"

ตรวจสอบกับแผนกกฎหมายของคุณ


5
นี่คือ FUD ฉันเห็น บริษัท มากมายรอบตัวฉันรวมถึงธนาคารชื่อใหญ่ที่ใช้ Java โดยไม่ให้ความคิดใด ๆ กับปัญหาเรื่องใบอนุญาต
quant_dev

ถาม Google ว่าเคยมีปัญหาหรือไม่ สงสัยในความไว้วางใจของออราเคิลเกี่ยวกับการตีความลิขสิทธิ์ของพวกเขารับประกันว่าจะมีมูลค่าถึง 9 พันล้านเหรียญสหรัฐ ฉันหวังว่าคุณพูดถูก แต่ฉันพนันว่า Google คิดเหมือนกัน ออราเคิลเพิ่งทำเรื่องเปลี่ยนใบอนุญาตเป็นจำนวนมากดังนั้นพวกเขาจึงคาดหวังว่าใบอนุญาตดังกล่าวจะให้ผลตอบแทน $$ caveat emptor
Jeff K

-3

ไม่เท่าที่ฉันรู้ในปัจจุบัน GPL จำกัด การใช้งานซอร์สโค้ดของรหัสหรือโปรแกรมที่ได้รับสิทธิการใช้งานเท่านั้น (ในกรณีนี้โปรแกรมที่รันโค้ด Java) แต่ไม่ได้ จำกัด รหัส Java เอง


ฉันไม่ได้ใช้รหัสแค่ไลบรารีมันเกี่ยวกับอะไร
Shisoft

5
ถ้าคุณใช้ห้องสมุด GPL แล้วโปรแกรมของคุณคือการทำงานร่วมกันและเงื่อนไขของ GPL กลายเป็นบังคับสำหรับการใช้งานทั้งหมด มิฉะนั้นจะไม่มีความจำเป็นสำหรับLGPLหรือข้อยกเว้น classpathเพื่อคลายกฎเล็กน้อย
Wim Coenen

1
คำตอบของคุณไม่ชัดเจน คุณกำลังพูดว่า "ไม่" กับชื่อ "เราสามารถใช้ java เพื่อการใช้งานเชิงพาณิชย์" หรือคุณกำลังพูดว่า "ไม่" ในส่วนสุดท้ายของคำถาม "ผิดกฎหมาย" หรือไม่?
ไบรอัน Oakley

-3

คุณสามารถรวบรวมแอปพลิเคชั่นโดยใช้ gcc ซึ่งเป็นซอฟต์แวร์ฟรี จากนั้นคุณสามารถอนุญาตแอปของคุณตามที่คุณต้องการ แต่ไม่ใช่คอมไพเลอร์ gcc


3
ครั้งล่าสุดที่ฉันตรวจสอบ gcc ไม่ได้รวบรวม Java
Dan Pichelman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.