답변:
Java 언어 사양을 구현하는 컴파일러를 작성하거나 JVM (Java Virtual Machine) 사양을 구현하는 JVM을 작성할 수 있지만 공식적으로 "Java"라고 부르려면 TCK 테스트를 통과하여 호환되는지 확인해야합니다 ( 기술 호환성 키트)와 Oracle의 라이센스 비용을 지불합니다.
그러나 오라클은 다른 당사자가이를 쉽게 수행 할 수 있도록하지 않습니다. Apache는 자체 구현 된 JVM ( Apache Harmony )을 가지고 있지만 이전에는 Oracle 이었지만 현재 Oracle은 TCK를 사용할 수 있도록하거나 Apache를 라이센스를 얻도록 허용하지 않았으므로 Apache와 Oracle간에 많은 분개를 불러 일으켰습니다.
오래 전에 Microsoft는 자체 버전의 Java (실제로 "Java"라고 함)를 가지고있었습니다. 그들은 Sun이 싫어하는 Windows 전용으로 변경하려고했습니다. 마이크로 소프트가 잃어버린 소송이 있었고, 자체 Java 버전을 종료하고 .NET을 만들었습니다. 이것은 완전히 다른 방식으로 Java 작동 방식과 비슷하게 작동합니다 ...
안드로이드에 대한 소송은 전혀 근거하지 않습니다. 구글은 안드로이드가 자바라고 말하지 않는다. 그 소송은 특허에 관한 것입니다. 오라클은 자체 JVM 구현에서 수많은 아이디어와 개념에 대한 특허를 보유하고 있으며 Google이 Oracle의 특허 라이센스를 얻지 않고 Android에서 동일한 특허 아이디어를 사용하고 있다고 주장합니다.