Mid-90s To 2006
Probably the first free project to offer substantial parts of Java platform functionality was guavac, which began some time before November 1995.
Since then, the free software movement developed other Java compilers, most notably the GNU Compiler for Java. Others include the Eclipse Java Compiler (ECJ), which is maintained by the Eclipse Foundation, and Jikes, which is no longer actively maintained. Since the GNU Compiler Collection's 4.3 release, GCJ (its Java compiler) is using the ECJ parser front-end for parsing Java.
Examples of free runtime environments include Kaffe, SableVM and gcj.
GNU Classpath is the main free software class library for Java. Most free runtimes use GNU Classpath as their class library.
In May 2005, Apache Harmony was announced, however, the project chose the Apache License, which was at the time incompatible with all existing free Java implementations.
Another event in May 2005 was the announcement that OpenOffice.org 2.0 would depend on Java features which free software implementations couldn't provide. Red Hat solved this problem by extending the free software implementations to be adequate for their purposes.
Notable applications that already worked with free software Java implementations before November 2006 include OpenOffice.org and Vuze, both of which work when compiled with GCJ.
Read more about this topic: Free Java Implementations