คุณสามารถเขียนคอมไพเลอร์ที่ใช้ Java Language Specification หรือเขียน JVM ที่ใช้สเปค Java Virtual Machine แต่เมื่อคุณต้องการเรียกอย่างเป็นทางการว่า "Java" คุณต้องพิสูจน์ว่ามันเข้ากันได้โดยผ่านการทดสอบของ TCK ( ชุดความเข้ากันได้กับเทคโนโลยี) และชำระค่าลิขสิทธิ์จาก Oracle
Oracle ไม่ได้ทำให้บุคคลอื่นสามารถทำได้ง่ายขึ้น Apache มี JVM ( Apache Harmony) เป็นของตัวเอง ) ของตนเอง แต่ก่อนหน้านี้ Sun ในขณะนี้ Oracle ไม่ร่วมมือในการทำให้ TCK ว่างและไม่อนุญาตให้ Apache ได้รับใบอนุญาตซึ่งทำให้เกิดความไม่พอใจระหว่าง Apache และ Oracle
นานมาแล้ว Microsoft มี Java เวอร์ชันของตัวเอง (ซึ่งเรียกกันว่า "Java") พวกเขาพยายามเปลี่ยนมันเพื่อให้เป็น Windows โดยเฉพาะซึ่งแน่นอนว่า Sun ไม่ชอบ ไมโครซอฟท์แพ้คดีเลิกสร้าง Java เวอร์ชันของตนเองและสร้าง. NET ซึ่งเป็นสิ่งที่แตกต่างอย่างสิ้นเชิงที่เพิ่งเกิดขึ้นกับการทำงานเช่นเดียวกับวิธีการทำงานของ Java ...
คดีเกี่ยวกับ Android ไม่ได้ขึ้นอยู่กับเรื่องนี้เลย Google ไม่ได้บอกว่า Android เป็น Java คดีดังกล่าวเป็นเรื่องเกี่ยวกับสิทธิบัตร ออราเคิลมีสิทธิบัตรเกี่ยวกับแนวคิดและแนวคิดจำนวนมากในการนำ JVM มาใช้และอ้างว่า Google ใช้แนวคิดที่จดสิทธิบัตรเดียวกันใน Android โดยไม่ได้รับใบอนุญาตสิทธิบัตรจาก Oracle