L'ambiente Java libero si chiama IcedTea.
L'8 maggio 2007 Sun ha pubblicato anche le librerie, tranne alcuni componenti non di sua proprietà, sotto licenza GPL, rendendo Java un linguaggio di programmazione la cui implementazione di riferimento è libera.
Il linguaggio è definito da un documento chiamato "The Java Language Specification," spesso abbreviato "JLS".
La prima edizione del documento è stata pubblicata nel 1996.