Ви можете написати компілятор, який реалізує специфікацію мови Java, або написати JVM, який реалізує специфікацію віртуальної машини Java, але коли ви офіційно хочете назвати це "Java", ви повинні довести, що він сумісний, пройшовши тести TCK ( комплект сумісності з технологіями) та оплатити ліцензію від Oracle.
Однак Oracle не спрощує це зробити для інших сторін. Apache має власну реалізацію JVM ( Apache Harmony ), але раніше Sun, тепер Oracle, не співпрацює у наданні TCK, а також не дозволяє Apache отримати ліцензію, що призвело до сильного обурення Apache та Oracle.
Давно в Microsoft була своя версія Java (її справді називали "Java"). Вони намагалися змінити його, щоб зробити його специфічним для Windows, що Sun, звичайно, не сподобалось. Був позов, Microsoft програв, вийшов із власної версії Java та створив .NET, що зовсім інша річ, яка, як буває, працює багато, як те, як працює Java ...
Позов про Android взагалі не базується на цьому; Google не каже, що Android - це Java. Цей позов стосується патентів; Oracle має патенти на низку ідей та концепцій у власній реалізації JVM і стверджує, що Google використовує ті самі патентовані ідеї в Android, не отримуючи патентну ліцензію від Oracle.