Anyone who has used Linux should know that in most Linux releases, JDK is installed either with built-in or through software sources. What is openjdk, what is the relationship and difference between it and Sun JDK?
Historically, openjdk is an open source code version of JDK, which is released in the form of the GPL protocol. At jdk7, openjdk has become the backbone development of jdk7. Sun jdk7 was released on the basis of openjdk7. Most of its original codes are the same, and only a few of them are replaced. Use jrl (javaresearch license, Java research authorization Protocol) to publish.
As for openjdk6, there is a complicated aspect. First, openjdk6 is a branch of JDK 7, and the new features of Java se7 should be removed as much as possible to make it conform to the Java 6 standard.
The differences between JDK and openjdk can be summarized as follows:
Different authorization protocols:
Openjdk is released using the GPL v2 protocol, while JDK is released using jrl. Although both protocols are open-source, the difference in use is that GPL V2 is commercially available, while jrl is only available for personal research.
Openjdk does not include the deployment function:
Features deployed include browser plugin, Java Web Start, and Java Control Panel, which cannot be found in openjdk.
Openjdk source code is incomplete:
It is easy to think that in openjdk using the GPL protocol, part of the source code of Sun JDK cannot be used by openjdk due to property rights issues, the most important part is the code of the SNMP part of the optional component in JMX. Therefore, the Open Source Code cannot be used as plug for openjdk compilation. You can also choose not to use plug. While icedtea developed the source code (openjdk6) of the same function for these incomplete parts, promoting openjdk to be more complete.
Some source code should be replaced with the open source code:
Due to property rights issues, many of Sun's source code is replaced with some open-source code with the same features, such as the font raster engine, instead of free type.
Openjdk only contains the most streamlined JDK:
Openjdk does not contain other software packages, such as rhino java db jaxp ......, In addition, software packages that can be separated are separated as much as possible, but most of them are free software. You can download and add them by yourself.
Java trademarks cannot be used:
This is easy to understand. On the machine where openjdk is installed, input "Java-version" to show openjdk. However, if openjdk is installed with the icedtea patch, Java is displayed. (Not verified)
In short, in the Java system, there are still many components that are not free, and source code development is not thorough enough. We hope that Oracle can make JCP more open, which is also expected by all Java communities.