Answers:
您可以编写实现Java语言规范的编译器或编写实现Java虚拟机规范的JVM,但是当您正式希望将其称为“ Java”时,您必须通过通过TCK的测试来证明其兼容(技术兼容性套件)并从Oracle处购买许可证。
但是,Oracle并不容易使其他方执行此操作。Apache拥有自己的JVM实现(Apache Harmony),但以前的Sun(现为Oracle)不合作以提供TCK,也不让Apache获得许可证,这引起了Apache和Oracle之间的强烈不满。
微软很早以前就有自己的Java版本(确实称为“ Java”)。他们试图更改它以使其特定于Windows,而Sun当然不喜欢它。发生了一场诉讼,微软败诉,退出了自己的Java版本并创建了.NET,这是完全不同的事情,就像Java的工作原理一样工作......
关于Android的诉讼完全不是基于此。Google并不是说Android是Java。该诉讼是关于专利的。甲骨文在自己的JVM实现中拥有许多想法和概念的专利,并声称Google在未获得甲骨文的专利许可的情况下在Android中使用了相同的专利想法。