On November 13, 2006, Sun released much of Java as free and open source software, (FOSS), under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of Java’s core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.
OpenJDK (Open Java Development Kit) is a free and open source implementation of the Java programming language. It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GNU General Public License (GNU GPL) with a linking exception.
- Why there are still people who say that Java is not open source or free as in free speech?
- Am I missing something?
- Is Java still proprietary?
2
The problem is that in order to call something “Java” you need to get it certified as compliant to the Java spec.
One of the pre-requisites of getting this certification is running you JVM through a test suite – Java Technology Compatibility Kit (TCK). This test suite is NOT open sourced.
So you can build a JVM that behaves in a very Java like way and be completely open source, but, if you want to call it a “Java JVM” you need to buy the certification suite under a non open source license. To many open source advocates this is a complete non starter.
13
You should have read this answer before it was removed about which one to use. The main answer stated:
About Java 7, note that JDK7 and OpenJDK7 will have (nearly) identical code base.
Notice the nearly I highlighted.
From the article linked from that answer:
[…] but there is some code where there are open source replacements where we still use the old closed source code. This is primarily in font and graphics rasterization. The old closed source rasterisation code, while being encumbered, has had 10+ years of bug fixing and fine tuning etc and, for any open source replacement to displace that code in productized JDK builds, it would have to be provably as fast and stable and good quality as the existing closed code.
Also, from the Java FAQ:
The Java Development Kit (JDK) is free to download and use for commercial programming, but not to re-distribute.
So, not open source. Just nearly.
Also, even if it were completely open source, the development model and governance would not. That is not a licensing concern, though.
2
In 1997, Sun Microsystems approached the ECMA to formalize the Java but it soon withdrew from the process. Java standard is actually controlled through Java Community Process.
Although in 2006, most of the Java was released by Sun Microsystems under the terms of GPL but the current official implementation is owned by the Oracle.
As Java lacks any formal standardization recognized by ECMA, ISO/IEC, ANSI, or other third-party standards organization, the Oracle implementation is the defacto standard. However, there are alternative implementations like GNU Compiler for Java, GNU Classpath, IcedTea-Web, etc.
2