The source code for Sun's implementations of Java (which is the de-facto reference implementation) has been available for some time, but until recently the license terms severely restricted what could be done with it without signing (and generally paying for) a contract with Sun. As such these terms did not satisfy the requirements of either the Open Source Initiative or theFree Software Foundation to be considered open source or free software, and Sun Java was therefore a proprietary platform.
While several third-party projects (e.g. GNU Classpath and Apache Harmony) created free software partial Java implementations, the sheer size of the Sun libraries combined with the use of clean room techniques meant that their implementations of the Java libraries (the compiler and vm are comparatively small and well defined) were incomplete and not fully compatible. These implementations also tended to be a long way behind Sun's in terms of optimization.