OpenJDK (Open Java Development Kit) is a
free and open-source implementation of the
Java Platform, Standard Edition (Java SE). It is the result of an effort
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, ...
began in 2006. The implementation is licensed under the
GPL-2.0-only with a
linking exception. Were it not for the GPL linking exception, components that linked to the
Java class library
The Java Class Library (JCL) is a set of Library (computer science)#Dynamic linking, dynamically loadable libraries that List of JVM languages, Java Virtual Machine (JVM) languages can call at Run time (program lifecycle phase), run time. Because ...
would be subject to the terms of the GPL license. OpenJDK is the official
reference implementation of Java SE since version 7.
Components
The OpenJDK project produces a number of components: most importantly the
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
(
HotSpot
Hotspot, Hot Spot or Hot spot may refer to:
Places
* Hot Spot, Kentucky, a community in the United States
Arts, entertainment, and media Fictional entities
* Hot Spot (comics), a name for the DC Comics character Isaiah Crockett
* Hot Spot (Tra ...
), the
Java Class Library
The Java Class Library (JCL) is a set of Library (computer science)#Dynamic linking, dynamically loadable libraries that List of JVM languages, Java Virtual Machine (JVM) languages can call at Run time (program lifecycle phase), run time. Because ...
and the Java compiler (
javac).
The web-browser plugin and
Web Start
In computing, Java Web Start (also known as JavaWS, javaws or JAWS) is a deprecated Software framework, framework developed by Sun Microsystems (now Oracle Corporation, Oracle) that allows users to start application software for the Java Platform d ...
, which form part of
Oracle Java, are not included in OpenJDK. Sun previously indicated that they would try to open-source these components, but neither Sun nor
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The wor ...
have done so.
The only currently available free plugin and Web Start implementations are those provided by
IcedTea.
OpenJDK 9+ supports
AOT compilation () using
GraalVM (JEP 295). The experimental flag enables the use of Graal JIT (JEP 317).
OpenJDK versions
OpenJDK was initially based only on the
JDK 7 version of the Java platform.
Since JDK 10, the effort to produce an open-source reference implementation of the Java SE Platform was moved over to the JDK Project. Unlike past JDK Release Projects, which produced just one feature release and then terminated, this long-running project will produce all future JDK feature releases and will ship a feature release every six months according to a strict, time-based model.
OpenJDK builds
Due to Oracle no longer releasing updates for
long-term support (LTS) releases under a permissive license, others have begun offering builds. Linux distributions have always offered their own builds, and Windows also offers one now;
winget install ojdkbuild.openjdk.17.jre
IcedTea and inclusion in software distributions
In order to bundle OpenJDK in
Fedora and other
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
distributions, OpenJDK needed to be buildable using only
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
components. Due to the
encumbered components in the
class library and implicit assumptions within the build system that the JDK being used to build OpenJDK was a Sun JDK, this was not possible. To achieve openness,
Red Hat started the IcedTea project in June 2007.
It began life as an OpenJDK/
GNU Classpath hybrid that could be used to
bootstrap OpenJDK, replacing the encumbrances with code from GNU Classpath.
On November 5, 2007, Red Hat signed both the Sun Contributor Agreement and the OpenJDK Community
TCK License.
One of the first benefits of this agreement is tighter alignment with the IcedTea project, which brings together
Fedora, the Linux distribution, and
JBoss, the application server, technologies in a Linux environment. IcedTea provided free software alternatives for the few remaining proprietary sections in the OpenJDK project.
In May 2008, the
Fedora 9
and
Ubuntu 8.04[
]
distributions included IcedTea 6, based completely on
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
and
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
code.
Fedora 9 was the first version to be shipped with IcedTea6, based on the OpenJDK6 sources from Sun rather than OpenJDK7. It was also the first to use OpenJDK for the package name (via th
OpenJDK trademark agreement instead of IcedTea.
Ubuntu also first packaged IcedTea7
before later moving to IcedTea6. Packages for IcedTea6 were also created for
Debian
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
and included in ''Lenny''. On July 12, 2008,
Debian
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
accepted OpenJDK-6 in unstable, and it later was included in
stable. OpenJDK is also available on
openSUSE,
Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) is a Commercial software, commercial Open-source software, open-source Linux distribution developed by Red Hat for the commerce, commercial market. Red Hat Enterprise Linux is released in server versions for x86-6 ...
and RHEL derivatives such as
CentOS.
In June 2008, Red Hat announced that the packaged binaries for OpenJDK on
Fedora 9, built using IcedTea 6, had passed the
Technology Compatibility Kit tests and could claim to be a fully compatible Java 6 implementation. In July 2009, an IcedTea 6 binary build for
Ubuntu 9.04 passed all of the compatibility tests in the Java SE 6
TCK.
Since August 2008, OpenJDK 7 is usable on
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
and other
BSD variants.
On
Android Nougat, OpenJDK replaced the now-discontinued
Apache Harmony
Apache Harmony is a retired Open-source software, open source, free Java implementations, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the Board of Directors ...
as the Java libraries in the source code of the
mobile operating system
A mobile operating system is an operating system for mobile phones, tablet computer, tablets, smartwatches, smartglasses, or other non-laptop personal computing, personal mobile computing devices. While computers such as typical laptops are "mobi ...
.
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
was in a
legal dispute with Oracle over claims of copyright and patent infringement through its use of re-implementations of copyrighted Java APIs via Harmony. While also stating that this change was to create a more consistent platform between Java on Android and other platforms, the company admitted that the switch was motivated by the lawsuit, arguing that Oracle had authorized its use of the OpenJDK code by licensing it under the GPL.
History
Sun's promise and initial release
Sun announced in
JavaOne 2006 that Java would become open-source software, and on October 25, 2006, at the Oracle OpenWorld conference,
Jonathan Schwartz said that the company intended to announce the open-sourcing of the core
Java Platform
Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cro ...
within 30 to 60 days.
Sun released the Java
HotSpot
Hotspot, Hot Spot or Hot spot may refer to:
Places
* Hot Spot, Kentucky, a community in the United States
Arts, entertainment, and media Fictional entities
* Hot Spot (comics), a name for the DC Comics character Isaiah Crockett
* Hot Spot (Tra ...
virtual machine and compiler as
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
under the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
on November 13, 2006, with a promise that the rest of the JDK (which includes the
Java Runtime Environment) would be placed under the GPL by March 2007, "except for a few components that Sun does not have the right to publish in source form under the GPL". According to free-software advocate
Richard Stallman
Richard Matthew Stallman (; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to u ...
, this would end the "Java trap", the
vendor lock-in
In economics, vendor lock-in, also known as proprietary lock-in or customer lock-in, makes a customer dependent on a vendor for products, unable to use another vendor without substantial switching costs.
The use of open standards and alternativ ...
that he argues applied to Java and programs written in Java.
Release of the class library
Following their promise to release a
Java Development Kit (JDK) based almost completely on free and open-source code in the first half of 2007, Sun released the complete
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
of the Java Class Library under the GPL on May 8, 2007, except for some limited parts that had been licensed to Sun by third parties and Sun was unable to
re-license under the GPL. Included in the list of encumbered parts were several major components of the Java
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
(GUI). Sun stated that it planned to replace the remaining
proprietary components with alternative implementations and to make the class library completely free.
When initially released in May 2007, 4% of the OpenJDK class library remained proprietary. By the appearance of OpenJDK 6 in May 2008, less than 1% (the
SNMP implementation,
which is not part of the Java specification) remained,
making it possible to build OpenJDK without any binary plugs.
The binary plug requirement was later dropped from OpenJDK 7 as part of b53 in April 2009.
This was made possible, over the course of the first year, by the work of
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, ...
and the OpenJDK community. Each encumbrance was either released as
free and open-source software or replaced with an alternative. Beginning in December 2010, all the so-called ''binary plugs'' were replaced by
open-source replacements, making the whole JDK open sourced and the ''binary plugs'' not necessary anymore.
Community improvements
On November 5, 2007,
Red Hat announced an agreement with Sun, signing Sun's broad contributor agreement (which covers participation in all Sun-led free and open-source software projects by all Red Hat engineers) and Sun's OpenJDK Community
Technology Compatibility Kit (TCK) License Agreement (which gives the company access to the test suite that determines whether a project based on OpenJDK complies with the Java SE 6 specification).
Also in November 2007, the ''Porters Group'' was created on OpenJDK to aid in efforts to port OpenJDK to different
processor architectures and
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s. The
BSD porting project led by Kurt Miller and Greg Lewis and the
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
porting project (based on the BSD one) led by Landon Fuller have expressed interest in joining OpenJDK via the Porters Group. As of January 2008, both are part of the mailing list discussions. Another project pending formalization on the Porters Group is the
Haiku
is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 ''On (Japanese prosody), on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, ...
Java Team led by Bryan Varner.
In December 2007, Sun moved the
revision control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
of OpenJDK from
TeamWare to
Mercurial (and later to
Git and
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
), as part of the process of releasing it to
open-source communities.
OpenJDK has comparatively strict procedures of accepting code contributions: every proposed contribution must be reviewed by another OpenJDK committer and the contributor must have signed the Sun/Oracle Contributor Agreement (SCA/OCA). Preferably, there should also be a
jtreg test demonstrating the bug has been fixed. Initially, the external patch submission process was slow and, until September 2008, commits to the
codebase were only made by Sun engineers. The process has improved and, , simple patches and backports from OpenJDK 7 to OpenJDK 6 can take place within hours rather than days.
In 2011, an unofficial port of OpenJDK 6.0 to OS/2 was first released. This port is included in the OS/2 derivative
ArcaOS
ArcaOS is an operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was codenamed Blue Lion during its development. It builds on OS/2 Warp 4.52 by adding support for new hardware, fixing defects and l ...
.
On 25 September 2013, Microsoft and
Azul Systems collaborated to create Zulu, a build of OpenJDK for users of the Windows Azure cloud. Zulu is available as a free download from the community sit
Zulu.org It is also possible to get Zulu on Amazon Web Services via Canonical's Juju Charm Store, the Docker Hub, and Azul Systems repositories. Azul contributes bug fixes and enhancements back to the OpenJDK project and has several project committers on staff. Red Hat resigned leadership of OpenJDK 6 at the beginning of 2017 and this was then taken up by Azul Systems.
Since April 2016 there are unsupported community builds of OpenJDK for
Microsoft Windows on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
in the projec
ojdkbuildwhich are released in pace with updates for
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The wor ...
JDK. From build 8u151 on, the MSI-installer offers an optional component for using
Java Web Start
In computing, Java Web Start (also known as JavaWS, javaws or JAWS) is a deprecated framework developed by Sun Microsystems (now Oracle) that allows users to start application software for the Java Platform directly from the Internet using a web ...
based on the
IcedTea-Web project.
In 2020, a port of OpenJDK 8 to
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
on the
Itanium
Itanium ( ) is a discontinued family of 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). Launched in June 2001, Intel marketed the processors for enterprise servers and high-performance comp ...
platform was released.
The number of external contributions to OpenJDK is growing since project inception. OpenJDK 11, released in September 2018, received 20% of external fixes and brought 17 new JEPs (features), out of which 3 were contributed by the community. Namely, JEP 315: "Improve Aarch64 Intrinsics" (contributed by
BellSoft), JEP 318: "Epsilon: A No-Op Garbage Collector" (by Red Hat) and JEP 331: "Low-Overhead Heap Profiling" (contributed by Google).
Collaboration with IBM, Apple, and SAP
On October 11, 2010,
IBM, by far the biggest participant in the
Apache Harmony
Apache Harmony is a retired Open-source software, open source, free Java implementations, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the Board of Directors ...
project, decided to join
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The wor ...
on the OpenJDK project, effectively shifting its efforts from Harmony to OpenJDK. Bob Sutor, IBM's head of Linux and open source, blogged that "IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK".
On November 12, 2010,
Apple Inc. (just three weeks after deprecating its own Java runtime port) and Oracle Corporation announced the OpenJDK project for Mac OS X. Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client.
On January 11, 2011, the Mac OS X Port Project was created on OpenJDK, and
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
made the first public contribution of code to the project. The initial Apple contribution built on the OpenJDK
BSD port.
In July 2011,
SAP AG
Sap is a fluid transported in xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant.
Sap is distinct from latex, resin, or cell sap; it is a sepa ...
announced that SAP officially joined the OpenJDK project.
See also
*
Free Java implementations
References
External links
Main siteOpenJDK builds from OracleOpenJDK builds from AdoptiumOpenJDK builds from Red HatMicrosoft Build of OpenJDKJava in 2018: Change is the Only Constant Keynote by Mark ReinholdOpenJDK official source code
{{Portal bar, Free and open-source software, Computer programming
Free software programmed in C++
Free software programmed in Java (programming language)
Free virtualization software
Java (programming language)
Java (programming language) libraries
Java virtual machine
Oracle software