HOME

TheInfoList



OR:

OpenJDK (Open Java Development Kit) is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
implementation of the
Java Platform, Standard Edition Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE). The platform uses Ja ...
(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, t ...
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 dynamically loadable libraries that Java Virtual Machine (JVM) languages can call at run time. Because the Java Platform is not dependent on a specific operating system, applications cannot rely on any o ...
would be 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 o ...
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), the
Java Class Library The Java Class Library (JCL) is a set of dynamically loadable libraries that Java Virtual Machine (JVM) languages can call at run time. Because the Java Platform is not dependent on a specific operating system, applications cannot rely on any o ...
and the Java compiler (
javac javac (pronounced "java-see") is the primary Java compiler included in the Java Development Kit (JDK) from Oracle Corporation. Martin Odersky implemented the GJ compiler, and his implementation became the basis for javac. The compiler accepts ...
). 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 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 word '' ...
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 GraalVM is a Java VM and JDK based on HotSpot/OpenJDK, implemented in Java. It supports additional programming languages and execution modes, like ahead-of-time compilation of Java applications for fast startup and low memory footprint. The f ...
(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 Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where ...
(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 A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
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, whic ...
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, no ...
components. Due to the encumbered components in the
class library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and sub ...
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. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide. Red Hat has become ass ...
started the IcedTea project in June 2007. It began life as an OpenJDK/
GNU Classpath GNU Classpath is a free software implementation of the standard class library for the Java programming language. Most classes from J2SE 1.4 and 5.0 are implemented. Classpath can thus be used to run Java-based applications. GNU Classpath is a p ...
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 A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
, the Linux distribution, and
JBoss WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multi ...
, 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 A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
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 Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All the ...
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 A stable is a building in which livestock, especially horses, are kept. It most commonly means a building that is divided into separate stalls for individual animals and livestock. There are many different types of stables in use today; the ...
. OpenJDK is also available on
openSUSE openSUSE () is a free and open source RPM-based Linux distribution developed by the openSUSE project. The initial release of the community project was a beta version of SUSE Linux 10.0. Additionally the project creates a variety of tools, ...
,
Red Hat Enterprise Linux Red Hat Enterprise Linux (RHEL) is a commercial open-source Linux distribution developed by Red Hat for the commercial market. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop vers ...
and RHEL derivatives such as
CentOS CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a Linux distribution that provides a free and open-source community-supported computing platform, functionally compatible with its upstream source, Red Hat En ...
. 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 Android Nougat ( codenamed Android N during development) is the seventh major version and 14th original version of the Android operating system. First released as an alpha test version on March 9, 2016, it was officially released on August 22, ...
, 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 for mobile phones, tablets, smartwatches, smartglasses, or other non-laptop personal mobile computing devices. While computers such as typical laptops are "mobile", the operating systems used on ...
.
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronic ...
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 The Sun is the star at the center of the Solar System. It is a nearly perfect ball of hot plasma, heated to incandescence by nuclear fusion reactions in its core. The Sun radiates this energy mainly as light, ultraviolet, and infrared radi ...
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 cros ...
within 30 to 60 days. Sun released the Java HotSpot 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, no ...
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 users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
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 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 ...
) 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 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 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, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
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 users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
(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 Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behaviour. Devices that typically ...
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, t ...
and the OpenJDK community. Each encumbrance was either released as
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the sour ...
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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide. Red Hat has become ass ...
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 services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also ...
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 la ...
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'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, and a '' kigo'', or s ...
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 Sun WorkShop TeamWare (later Forte TeamWare, then Forte Code Management Software) is a distributed source code revision control system made by Sun Microsystems. It was first announced in November 1992 as SPARCworks/TeamWare and ProWorks/TeamWare and ...
to
Mercurial Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux. Mercurial's major design goals include high performance and scalability, ...
(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, conti ...
), 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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 files; thus, a code ...
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 li ...
. On 25 September 2013, Microsoft and
Azul Systems Azul Systems, Inc. develops runtimes ( JDKs, JVMs) for executing Java-based applications. Founded in March 2002, Azul Systems is headquartered in Sunnyvale, California Products Azul Platform Prime (Formerly Zing) Azul produces ''Platform ...
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 group of several Proprietary software, proprietary graphical user interface, graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, W ...
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, conti ...
in the projec
ojdkbuild
which 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 word '' ...
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 b ...
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 computi ...
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 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 word '' ...
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 ancestor ...
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 separ ...
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