OpenJDK (Open Java Development Kit) is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
implementation of the
Java Platform, Standard Edition
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of porting, portable code for desktop computer, desktop and server (computing), server environments. Java SE was formerly known as Java 2 Platform, S ...
(Java SE). It is the result of an effort
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
began in 2006, four years before the company was acquired by
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
. The implementation is licensed under the
GNU General Public License 2 with a
linking exception, preventing components that linked to the
Java Class Library becoming subject to the terms of the GPL license. OpenJDK is the official
reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
of Java SE since version 7, and is the most popular distribution of the JDK.
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 that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
within 30 to 60 days.
Sun released the Java
HotSpot virtual machine and compiler as
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
on November 13, 2006, with a promise that the rest of the JDK (which includes the
Java Runtime Environment
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms ...
) 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 ...
, this would end the "Java trap", the
vendor lock-in
In economics, vendor lock-in, also known as proprietary lock-in or customer lockin, makes a customer dependent on a vendor for products, unable to use another vendor without substantial switching costs.
The use of open standards and alternati ...
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
The Java Development Kit (JDK) is a distribution of Java technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
(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 or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
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
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(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., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
and the OpenJDK community. Each encumbrance was either released as free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
or replaced with an alternative. Beginning in December 2010, all the so-called ''binary plugs'' were replaced by open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
replacements, making the whole JDK open sourced and the ''binary plugs'' not necessary anymore.
Community improvements
On November 5, 2007, Red Hat
Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
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 A Technology Compatibility Kit (TCK) is a suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request (JSR) for compliance. It is one of the three required pieces for a ratified JSR in the Java C ...
(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 and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s. The BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
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, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
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 that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
Java Team led by Bryan Varner.
In December 2007, Sun moved the revision control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
of OpenJDK from TeamWare to Mercurial (and later to Git and GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
), as part of the process of releasing it to open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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
In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
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 a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
.
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
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
on GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
in the project ojdkbuild which are released in pace with updates for Oracle
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
JDK. From build 8u151 on, the MSI-installer offers an optional component for using Java Web Start 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 Op ...
on the Itanium
Itanium (; ) is a discontinued family of 64-bit computing, 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The Itanium architecture originated at Hewlett-Packard (HP), and was later jointly dev ...
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
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
, by far the biggest participant in the Apache Harmony project, decided to join Oracle
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
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.
Apple Inc. is an American multinational corporation and technology company headquartered in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. Founded in 1976 as Apple Comput ...
(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 a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
made the first public contribution of code to the project. The initial Apple contribution built on the OpenJDK BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
port.
In July 2011, SAP AG
Sap is a fluid transported in the 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 sep ...
announced that SAP officially joined the OpenJDK project.
Components
The OpenJDK project produces a number of components: most importantly the virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
( HotSpot), the Java Class Library and the Java compiler ( javac).
The Web browser plugin and Web Start, 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 Corporation 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, other organizations have begun to publish their own builds, both in regular and long-term support terms. Many Linux distributions offer their own builds through their package manager
A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
A package manager deals wi ...
, including Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
.
IcedTea and inclusion in software distributions
In order to bundle OpenJDK in Fedora and other free Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
distributions, OpenJDK needed to be buildable using only free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
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
Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
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 and open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 the OpenJDK trademark agreement) instead of IcedTea.[ ]Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
also first packaged IcedTea7 before later moving to IcedTea6. Packages for IcedTea6 were also created for Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
and included in ''Lenny''. On July 12, 2008, Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
accepted OpenJDK-6 in unstable, and it later was included in stable
A stable is a building in which working animals are kept, especially horses or oxen. The building is usually divided into stalls, and may include storage for equipment and feed.
Styles
There are many different types of stables in use tod ...
. OpenJDK is also available on openSUSE, Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) is a commercial Linux distribution developed by Red Hat. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. Fedora Linux and ...
and RHEL derivatives such as CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a discontinued Linux distribution that provided a free and open-source community-supported computing platform, functionally compatible with its upstream (softw ...
.
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 A Technology Compatibility Kit (TCK) is a suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request (JSR) for compliance. It is one of the three required pieces for a ratified JSR in the Java C ...
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, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and other BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
variants.[
]
On Android Nougat, OpenJDK replaced the now-discontinued Apache Harmony as the Java libraries in the source code of the mobile operating system
A mobile operating system is an operating system used for smartphones, tablets, smartwatches, smartglasses, or other non-laptop personal mobile computing devices. While computers such as laptops are "mobile", the operating systems used on the ...
. Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
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.
See also
* Free Java implementations
References
External links
Main site
OpenJDK builds from Oracle
OpenJDK builds from Adoptium
OpenJDK builds from Red Hat
Microsoft Build of OpenJDK
SapMachine, the OpenJDK build of SAP
*
*
OpenJDK 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