OpenJDK: Difference between revisions

Content deleted Content added
Added sources for modification of Oracle OpenJDK.
OpenJDK builds: bare url corrected
 
(54 intermediate revisions by 35 users not shown)
Line 4:
| name = OpenJDK
| logo = [[File:OpenJDK logo.svg|200px]]
| screenshot =
| caption =
| author = [[Sun Microsystems]]
| developer = [[Oracle Corporation|Oracle]], OpenJDK and Java Community, [[Red Hat]], [[Azul Systems]], [[IBM]], [[Microsoft]], [[Amazon (company)|Amazon]], [[Apple Inc.|Apple]], [[SAP]]
| developer = [[Oracle Corporation|Oracle]], OpenJDK and Java Community, [[Red Hat]], [[Azul Systems]], [[IBM]], [[Microsoft]], [[Amazon (company)|Amazon]], [[Apple Inc.|Apple]], [[SAP]], [[Sullivan Delaby]]
| released = {{Start date and age|2007|05|08}}
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| operating system = [[Linux]], [[FreeBSD]], [[macOS]], [[Microsoft Windows]], [[OpenIndiana]], [[OpenVMS]]; several other ports in progress
| programming language = [[C++]] and [[Java (programming language)|Java]]
| genre = [[Java (software platform)|Java platform]] development kit
| license = [[GNU General Public License|GPL-2.0-only]] with [[GPL linking exception|linking exception]]
| website = {{URL|https://openjdk.java.netorg/}}
}}
'''OpenJDK''' ('''Open Java Development Kit''') is a [[free and open-source software|free and open-source]] implementation of the [[Java Platform, Standard Edition]] (Java SE).<ref>{{cite web|url = http://openjdk.java.net/|title = OpenJDK homepage|publisher=[[Oracle Corporation]] and/or its affiliates|access-date=January 1, 2013}}</ref> It is the result of an effort [[Sun Microsystems]] began in 2006, four years before the company was acquired by [[Oracle Corporation]]. The implementation is licensed under the [[GNU General Public License|GPL-GNU General Public License 2.0-only]] with a [[GPL linking exception|linking exception]]. Were it not for the GPL linking, exception,preventing components that linked to the [[Java Class Library|Java class library]] would bebecoming subject to the terms of the GPL license. OpenJDK is the official [[reference implementation]] of Java SE since version 7, and is the most popular distribution of the JDK.<ref>[{{Cite web|url=https://blogs.oracle.com/java/moving-to-openjdk-as-the-official-java-se-7-reference-implementation |title=Moving to OpenJDK as the official Java SE 7 Reference Implementation]}}</ref><ref>[http{{Cite web|url=https://jdk.java.net/java-se-ri/7 |title=Java Platform, Standard Edition 7 Reference Implementations]|website=jdk.java.net}}</ref><ref>{{cite web |title=Java Platform, Standard Edition 8 Reference Implementations |url=http://jdk.java.net/java-se-ri/8 |archive-url=https://web.archive.org/web/20151121054204/https://jdk8.java.net/java-se-8-ri/ |archive-date=November 21, 2015}}</ref>
 
==History==
{{see also|Java (Sun)#Licensing}}
 
===Sun's promise and initial release===
[[Sun Microsystems|Sun]] announced in [[JavaOne|JavaOne 2006]] that Java would become open-source software,<ref>{{cite web |last=Schwartz |first=Jonathan |date=May 23, 2006 |title=Busy Week... |url=http://blogs.sun.com/roller/page/jonathan/200605#busy_week1 |url-status=dead |archive-url=https://web.archive.org/web/20060717164412/http://blogs.sun.com/roller/page/jonathan/200605 |archive-date=July 17, 2006 |access-date=May 9, 2007 |publisher=Sun Microsystems}}</ref><ref>{{cite web |title=Sun Opens Java |url=http://mediacast.sun.com/share/tmarble/Sun_Opens_Java.ogg |url-status=dead |archive-url=https://web.archive.org/web/20090319020035/http://mediacast.sun.com/share/tmarble/Sun_Opens_Java.ogg |archive-date=March 19, 2009 |publisher=[[Sun Microsystems]] |format=[[OGG Theora]]}}</ref> and on October 25, 2006, at the Oracle OpenWorld conference, [[Jonathan I. Schwartz|Jonathan Schwartz]] said that the company intended to announce the open-sourcing of the core [[Java Platform]] within 30 to 60 days.<ref>{{cite web |date=October 25, 2006 |title=Sun CEO sets open source Java time frame - Announcement set for 30 to 60 days |url=http://www.infoworld.com/d/developer-world/sun-ceo-sets-open-source-java-time-frame-558 |access-date=2011-12-22 |publisher=[[InfoWorld]]}}</ref>
 
Sun released the Java [[HotSpot (virtual machine)|HotSpot]] virtual machine and compiler as [[free software]] under the [[GNU General Public License]] 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".<ref>{{cite web |date=November 13, 2006 |title=Sun Opens Java |url=http://www.sun.com/2006-1113/feature/index.jsp |archive-url=https://web.archive.org/web/20070421151747/http://www.sun.com/2006-1113/feature/index.jsp <!-- Bot retrieved archive --> |archive-date=April 21, 2007 |access-date=May 9, 2007 |publisher=Sun Microsystems}}</ref> According to free-software advocate [[Richard Stallman]], this would end the "Java trap", the [[vendor lock-in]] that he argues applied to Java and programs written in Java.<ref>{{cite web |last=Stallman |first=Richard |title=Free But Shackled—The Java Trap |url=https://www.gnu.org/philosophy/java-trap.html |access-date=December 4, 2007}}</ref>
 
===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,<ref>[http://www.sun.com/software/opensource/java/faq.jsp#b4 Oracle and Sun] {{Webarchive|url=https://web.archive.org/web/20120303230525/http://www.oracle.com/us/sun/index.htm#b4|date=March 3, 2012}}. Sun.com (2011-10-04). Retrieved on 2013-08-09.</ref> Sun released the complete [[source code]] 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 [[Software relicensing|re-license]] under the GPL.<ref>{{cite web |date=May 8, 2007 |title=Open JDK is here! |url=http://mail.openjdk.java.net/pipermail/announce/2007-May.txt |access-date=May 9, 2007 |publisher=Sun Microsystems}}</ref> Included in the list of encumbered parts were several major components of the Java [[graphical user interface]] (GUI). Sun stated that it planned to replace the remaining [[proprietary software|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.<ref>{{cite web |last=Fitzsimmons |first=Thomas |date=May 18, 2007 |title=Plans for OpenJDK |url=http://fitzsim.org/blog/?p=17 |access-date=May 22, 2007}}</ref> By the appearance of OpenJDK 6 in May 2008, less than 1% (the [[Simple Network Management Protocol|SNMP]] implementation,<ref name="openjdk b10">{{cite web |date=May 30, 2008 |title=OpenJDK 6 b10 source posted |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html |access-date=June 1, 2008}}</ref> which is not part of the Java specification) remained,<ref name="fedora9redhat" /> making it possible to build OpenJDK without any binary plugs.<ref name="openjdk b10" /> The binary plug requirement was later dropped from OpenJDK 7 as part of b53 in April 2009.<ref>{{cite web |date=April 2, 2009 |title=Changes in OpenJDK7 b53 |url=http://download.java.net/jdk7/changes/jdk7-b53.html |url-status=dead |archive-url=https://web.archive.org/web/20090406171143/http://download.java.net/jdk7/changes/jdk7-b53.html |archive-date=April 6, 2009 |access-date=September 5, 2009 |df=mdy-all}}</ref>
 
This was made possible, over the course of the first year, by the work of [[Sun Microsystems]] and the OpenJDK community. Each encumbrance<ref>{{cite web |last=Herron |first=David |date=October 4, 2007 |title=Plans for OpenJDK |url=http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html |url-status=dead |archive-url=https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html |archive-date=October 11, 2007 |access-date=October 9, 2007 |df=mdy-all}}</ref> 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 software|open-source]] replacements, making the whole JDK open sourced and the ''binary plugs'' not necessary anymore.<ref>{{cite web |author=Kelly O'Hair |date=December 2010 |title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed |url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html |access-date=2011-11-25 |publisher=[[Oracle Corporation]]}}</ref>
 
===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).<ref>{{Cite web |title=Broad contributor agreement and TCK License pave way for a fully compatible, free and open-source Java Development Kit for Red Hat Enterprise Linux |url=http://www.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20071105005882&newsLang=en |url-status=dead |archive-url=https://web.archive.org/web/20100228161007/http://www.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20071105005882&newsLang=en |archive-date=February 28, 2010 |access-date=January 4, 2008}}</ref>
 
Also in November 2007, the ''Porters Group'' was created on OpenJDK to aid in efforts to port OpenJDK to different [[microarchitecture|processor architectures]] and [[operating system]]s. The [[BSD]] porting project led by Kurt Miller and Greg Lewis and the [[Mac OS X]] 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 (operating system)|Haiku]] Java Team led by Bryan Varner.<ref>{{cite web |author=koki |date=January 3, 2008 |title=New java for haiku team formed |url=http://haiku-os.org/news/2008-01-03/new_java_for_haiku_team_formed |url-status=dead |archive-url=https://web.archive.org/web/20080105150946/http://haiku-os.org/news/2008-01-03/new_java_for_haiku_team_formed |archive-date=January 5, 2008 |publisher=Haiku}}</ref>
 
In December 2007, Sun moved the [[revision control]] of OpenJDK from [[Sun WorkShop TeamWare|TeamWare]] to [[Mercurial]] (and later to [[Git]] and [[GitHub]]), as part of the process of releasing it to [[open-source software|open-source]] communities.<ref>{{cite interview |interviewer=Robert Eckstein |title=James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1 |url=http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html |date=October 2006 |subject=[[James Gosling]]}}</ref><ref>{{cite web |last=O'Hair |first=Kelly |date=December 12, 2007 |title=Mercurial OpenJDK Questions |url=http://blogs.sun.com/kto/entry/mercurial_openjdk_questions |url-status=dead |archive-url=https://web.archive.org/web/20120305080437/https://blogs.oracle.com/roller-ui/errors/404.jsp |archive-date=March 5, 2012 |df=mdy-all}}</ref>
 
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).<ref>{{cite web |title=Sun Microsystems Inc. Contributor Agreement |url=http://oss.oracle.com/oca.pdf}}</ref> Preferably, there should also be a [[JavaTest harness|jtreg]]<ref>{{cite web |title=Regression Test Harness for the OpenJDK platform: jtreg |url=http://openjdk.java.net/jtreg/ |access-date=August 26, 2008}}</ref> test demonstrating the bug has been fixed. Initially, the external patch submission process was slow<ref>{{cite web |last=Tripp |first=Andy |date=July 16, 2007 |title=Classpath hackers frustrated with slow OpenJDK process |url=http://www.javalobby.org/java/forums/t98834.html |url-status=usurped |archive-url=https://web.archive.org/web/20130717141329/http://www.javalobby.org/java/forums/t98834.html |archive-date=July 17, 2013 |access-date=April 20, 2008}}</ref> and, until September 2008, commits to the [[codebase]] were only made by Sun engineers.<ref>{{cite web |last=Kennke |first=Roman |date=September 29, 2008 |title=A small step for me |url=http://kennke.org/blog/2008/09/29/a-small-step-for-me/ |url-status=dead |archive-url=https://web.archive.org/web/20081003094214/http://kennke.org/blog/2008/09/29/a-small-step-for-me/ |archive-date=October 3, 2008 |access-date=October 19, 2008}}</ref> The process has improved and, {{as of|2010|lc=on}}, simple patches and backports from OpenJDK 7 to OpenJDK 6 can take place within hours rather than days.<ref>{{cite web |last=Darcy |first=Joe |date=June 10, 2010 |title=Backporting changeset from 7 to 6 for bugfix |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2010-June/001708.html}}</ref>
 
In 2011, an unofficial port of OpenJDK 6.0 to OS/2 was first released.<ref>{{cite web |title=Java for OS/2 and OS/2-based systems |url=https://trac.netlabs.org/java |access-date=2020-09-09 |website=netlabs.org}}</ref> This port is included in the OS/2 derivative [[ArcaOS]].<ref>{{cite web |title=Compatibility Subsystems |url=https://www.arcanoae.com/wiki/arcaos/compatibility-subsystems/ |access-date=2020-09-09 |website=arcanoae.com}}</ref>
 
On 25 September 2013, Microsoft and [[Azul Systems]] collaborated to create Zulu,<ref>{{Cite web |title=Microsoft, Azul Bring OpenJDK to Windows Azure With 'Zulu' |url=http://www.eweek.com/developer/microsoft-azul-bring-openjdk-to-windows-azure-with-zulu.html |access-date=2015-12-03 |website=www.eweek.com}}{{Dead link|date=August 2024|bot=InternetArchiveBot|fix-attempted=yes}}</ref> a build of OpenJDK for users of the Windows Azure cloud. Zulu is available as a free download from the community site [http://zulu.org/ Zulu.org]. It is also possible to get Zulu on Amazon Web Services<ref>{{Cite web |last=parthik |first=dahima |date=14 October 2024 |title=Java Programming Interview Questions And Answers For students |url=https://boxoflearn.com/advance-java-viva-questions/ |access-date=2024-10-14 |website=www.boxoflearn.com}}</ref> via Canonical's Juju Charm Store,<ref>{{Cite web |title=Azul Systems Joins Canonical's Charm Partner Program |url=http://www.enterprisetech.com/2015/07/22/azul-systems-joins-canonicals-charm-partner-program/ |access-date=2015-12-03 |website=EnterpriseTech}}</ref> the Docker Hub,<ref>{{Cite web |title=Azul Systems puts Java 8 into Docker containers for Linux users |url=http://www.v3.co.uk/v3-uk/news/2371497/azul-systems-puts-java-8-into-docker-containers-for-linux-users |access-date=2015-12-03 |website=www.v3.co.uk}}</ref> and Azul Systems repositories. Azul contributes bug fixes and enhancements back to the OpenJDK project and has several project committers on staff.<ref>{{Cite news |title=Java Standards: Essential for Your Business - Azul Systems, Inc. |url=https://www.azul.com/products/zulu-and-zulu-enterprise/java-standards/ |access-date=2018-02-06 |work=Azul Systems, Inc. |language=en-US}}</ref> Red Hat resigned leadership of OpenJDK 6 at the beginning of 2017 and this was then taken up by Azul Systems.<ref>{{cite mailing list |last=Haley |first=Andrew |title=OpenJDK6 End Of Life |mailing-list=jdk6-dev |date=October 1, 2016 |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-October/003606.html |access-date=February 12, 2018 |archive-url=https://web.archive.org/web/20170702101259/http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-October/003606.html |archive-date=July 2, 2017 |url-status=live}}</ref><ref>{{cite mailing list |last=Bell |first=Tim |title=New lead for the JDK 6 Project: Andrew Brygin |mailing-list=jdk6-dev |date=October 1, 2016 |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2017-January/003614.html |access-date=February 19, 2018 |archive-url=https://web.archive.org/web/20180219175751/http://mail.openjdk.java.net/pipermail/jdk6-dev/2017-January/003614.html |archive-date=February 19, 2018 |url-status=live}}</ref>
 
Since April 2016 there are unsupported community builds of OpenJDK for [[Microsoft Windows]] on [[GitHub]] in the project ojdkbuild<ref>[https://github.com/ojdkbuild/ojdkbuild ojdkbuild]</ref> which are released in pace with updates for [[Oracle Corporation|Oracle]] JDK. From build 8u151 on, the MSI-installer offers an optional component for using [[Java Web Start]] based on the [[IcedTea#IcedTea-Web|IcedTea-Web]] project.
 
In 2020, a port of OpenJDK 8 to [[OpenVMS]] on the [[Itanium]] platform was released.<ref>{{cite web |date=2020-06-10 |title=New OpenJDK for OpenVMS announced |url=https://vmssoftware.com/about/news/2020-06-10-openjdk-announcement/ |access-date=2020-09-09 |website=vmssoftware.com}}</ref>
 
The number of external contributions to OpenJDK is growing since project inception. OpenJDK 11, released in September 2018, received 20% of external fixes<ref>{{cite web |author=Dalibor Topic |date=October 2018 |title=Building JDK 11 Together |url=https://blogs.oracle.com/java-platform-group/building-jdk-11-together |access-date=2019-05-27 |publisher=[[Oracle Corporation]]}}</ref> 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).<ref>{{cite web |author=Mark Reinhold |date=October 2018 |title=JDK 11 |url=https://openjdk.java.net/projects/jdk/11/ |access-date=2019-05-27 |publisher=[[Oracle Corporation]]}}</ref>
 
===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 Corporation|Oracle]] on the OpenJDK project, effectively shifting its efforts from Harmony to OpenJDK.<ref>{{cite web |title=Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK |url=http://www.marketwire.com/press-release/Oracle-and-IBM-Collaborate-to-Accelerate-Java-Innovation-Through-OpenJDK-NASDAQ-ORCL-1332855.htm |access-date=October 22, 2010 |publisher=[[Oracle Corporation]]}}</ref><ref>{{cite web |author=Ryan Paul |title=Java wars: IBM joins OpenJDK as Oracle shuns Apache Harmony |url=https://arstechnica.com/open-source/news/2010/10/ibm-joins-openjdk-as-oracle-shuns-apache-harmony.ars |access-date=October 22, 2010 |publisher=Ars Technica}}</ref> 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".<ref>{{cite web |author=Bob Sutor |title=IBM joins the OpenJDK community, will help unify open source Java efforts |url=http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/ |url-status=dead |archive-url=https://web.archive.org/web/20101018160132/http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/ |archive-date=October 18, 2010 |access-date=October 22, 2010 |quote=IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. For others who wish to do the same, we'll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.}}</ref>
 
On November 12, 2010, [[Apple Inc.]] (just three weeks after deprecating its own Java runtime port<ref>{{cite web |date=October 20, 2010 |title=Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes |url=https://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html}}</ref>) 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.<ref>{{cite web |date=November 12, 2010 |title=Oracle and Apple Announce OpenJDK Project for Mac OS X |url=http://www.businesswire.com/news/home/20101112005253/en/Oracle-Apple-Announce-OpenJDK-Project-Mac-OS |access-date=2010-11-12 |publisher=[[Business Wire]] |quote=Oracle and Apple today 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. OpenJDK will make Apple's Java technology available to open source developers so they can access and contribute to the effort.}}</ref>
 
On January 11, 2011, the Mac OS X Port Project was created on OpenJDK, and [[Apple Inc.|Apple]] made the first public contribution of code to the project. The initial Apple contribution built on the OpenJDK [[Berkeley Software Distribution|BSD]] port.<ref>{{cite web |author=Mike Swingler ([[Apple Inc.|Apple]]) |date=January 11, 2011 |title=Announcing: OpenJDK for Mac OS X source repository, mailing list, project home |url=http://mail.openjdk.java.net/pipermail/macosx-port-dev/2011-January/000007.html |access-date=2010-11-12 |publisher=OpenJDK |quote=''I'm very happy to let you know that today we made the first public contribution of code to the OpenJDK project for Mac OS X. This initial contribution builds on the hard work of the BSD port, and initially has the same functionality. Today's contribution simply modifies the build process to create universal binary, and produces a .jdk bundle which is recognized by Java Preferences and the JVM detection logic in Mac OS X.''}}</ref>
 
In July 2011, [[SAP AG]] announced that SAP officially joined the OpenJDK project.<ref>{{cite web |author=Volker Simonis ([[SAP AG]]) |date=July 14, 2011 |title=SAP joins the OpenJDK |url=http://mail.openjdk.java.net/pipermail/discuss/2011-July/001982.html |access-date=2010-11-12 |publisher=OpenJDK |quote=''I'm really happy that as of today, SAP has signed the Oracle Contributor Agreement (OCA). This means that with immediate effect the SAP JVM developers can officially join the discussions on the various OpenJDK mailing lists and contribute patches and enhancements to the project.''}}</ref>
 
==Components==
The OpenJDK project produces a number of components: most importantly the [[virtual machine]] ([[HotSpot (virtual machine)|HotSpot]]), the [[Java Class Library]] and the Java compiler ([[javac]]).
 
The web-Web browser plugin and [[Java Web Start|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|Oracle]] have done so.<ref>
{{cite web
| url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2009-June/000604.html
Line 37 ⟶ 81:
| publisher=InfoQ.com
| title=Ahead-of-Time (AOT) Compilation May Come to OpenJDK HotSpot in Java 9
| quote=''AOT brings about a new tool called ‘jaotc'jaotc' which uses Graal as the backend (to generate code)''
| date=2016-10-01
| access-date=2016-10-06
Line 51 ⟶ 95:
| access-date=October 14, 2007
| archive-date=March 3, 2012
| archive-url=https://wwwweb.webcitationarchive.org/65tawvVM4?url=web/20120303230525/http://www.oracle.com/us/sun/index.htm#b10
| url-status=dead
}}</ref>
 
Since JDK 10, the effort to produce an open-source reference implementation of the Java SE Platform was moved over to the JDK Project.<ref>{{Cite web|url=http://mail.openjdk.java.net/pipermail/announce/2017-September/000231.html|title=CFV: New Project: JDK|last=oracle.com|first=mark reinhold at|date=September 26, 2017|access-date=2018-02-16}}</ref> 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.<ref>{{Cite web|url=http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html|title=Accelerating the JDK release cadence|last=oracle.com|first=mark reinhold at|date=September 6, 2017|access-date=2018-02-16}}</ref>
 
There are several separate OpenJDK & JDK Project development branches:
*The JDK project release 17.<ref name=":0" />
*The JDK project release 16.<ref name=":0">{{cite web|last=OpenJDK|title=JDK Project|url=http://openjdk.java.net/projects/jdk|url-status=live}}</ref>
*The JDK project release 15.<ref name=":0"/>
*The JDK project release 14.<ref name=":0"/>
*The JDK project release 13.<ref name=":0"/>
*The JDK project release 12.<ref name=":0"/>
*The JDK project release 11.<ref name=":0"/>
*The JDK project release 10.<ref name=":0"/>
*The OpenJDK 9 project, which is the basis for JDK 9.<ref>{{Cite web|url=http://openjdk.java.net/projects/jdk9|title=JDK 9|website=openjdk.java.net|access-date=2018-02-16}}</ref>
*The OpenJDK 8u project, which is based on JDK 8 and produces updates to the existing Java 8 releases.<ref>{{Cite web|url=http://openjdk.java.net/projects/jdk8u|title=OpenJDK: JDK 8 Updates|website=openjdk.java.net|access-date=2018-02-16}}</ref>
*The OpenJDK 8 project, which is the basis for JDK 8, was released on 18 March 2014.<ref>{{Cite web|url=http://openjdk.java.net/projects/jdk8|title=JDK 8|website=openjdk.java.net|access-date=2018-02-16}}</ref>
*The OpenJDK 7u project, which is based on JDK 7 and produces updates to the existing Java 7 releases.<ref>{{Cite web|url=http://openjdk.java.net/projects/jdk7/|title=JDK 7|website=openjdk.java.net|access-date=2018-02-16}}</ref>
*The OpenJDK 6 project, which is based on JDK 7, retrofitted to provide an open-source version of [[Java 6]].<ref>{{Cite web|url=http://openjdk.java.net/projects/jdk6|title=OpenJDK: JDK 6|website=openjdk.java.net|access-date=2018-02-16}}</ref><ref>[http://weblogs.java.net/blog/robogeek/archive/2009/01/it_will_be_open.html It will be (Open)JDK7 where OpenJDK==JDK | Java.net] {{webarchive|url=https://web.archive.org/web/20110820044416/http://weblogs.java.net/blog/robogeek/archive/2009/01/it_will_be_open.html |date=August 20, 2011 }}. Weblogs.java.net. Retrieved on 2013-08-09.</ref><ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-February/000001.html
| title=The code is coming! The code is coming!
|quote=''At Sun we're making final preparations for the first source release for the OpenJDK 6 project. We plan to release a tarball of the source, along with matching binary plugs, by February 15, 2008.''
| last=Darcy|first=Joe
| date=February 11, 2008
| access-date=February 16, 2008}}</ref> Note that Red Hat resigned leadership of OpenJDK 6 at the beginning of 2017 and this was then taken up by Azul Systems.<ref>{{cite mailing list |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-October/003606.html |title=OpenJDK6 End Of Life |mailing-list=jdk6-dev |date=October 1, 2016 |last=Haley |first=Andrew |access-date=February 12, 2018 |archive-url=https://web.archive.org/web/20170702101259/http://mail.openjdk.java.net/pipermail/jdk6-dev/2016-October/003606.html |archive-date=July 2, 2017 |url-status=live}}</ref><ref>{{cite mailing list |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2017-January/003614.html |title=New lead for the JDK 6 Project: Andrew Brygin |mailing-list=jdk6-dev |date=October 1, 2016 |last=Bell |first=Tim |access-date=February 19, 2018 |archive-url=https://web.archive.org/web/20180219175751/http://mail.openjdk.java.net/pipermail/jdk6-dev/2017-January/003614.html |archive-date=February 19, 2018 |url-status=live}}</ref>
 
==OpenJDK builds==
{{missing information|section|presence of installer providing system integration (Windows registry, Mac framework, Linux MIME)|date=November 2020}}<!-- mainly for desktop users -->
Due to Oracle no longer releasing updates for [[long-term support]] (LTS) releases under a permissive license, othersother organizations have begun offeringto publish their own builds, forboth Windowsin regular and long-term support terms.<ref>{{citeCite web |url=https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html|title= Time to look beyond Oracle's JDK |first=Stephen|last=Colebourne}}</ref><ref>[{{Cite web|url=https://stackoverflow.com/questions/52431764/difference-between-openjdk-and-adoptopenjdk |title=Difference between OpenJDK and Adoptium/AdoptOpenJDK]|website=Stack Overflow}}</ref><ref>[{{Cite web|url=https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244 |title=Java is Still Free] 2.0.3. This is a repeat of (version 2.0.0) of... &#124; by Java Champions &#124; Medium}}</ref> LinuxMany distributionsoperating havesystems always offeredoffer their own builds through their [[package manager]], including many Linux distributions, and [[Microsoft Windows]].
 
{| class="wikitable sortable"
Line 87 ⟶ 110:
! Organization
! {{abbr|LTS|Long-term support}}
! Permissive <br />license
! [[Technology Compatibility Kit|TCK]] <br />tested
! Built <br />unmodified
! Commercial<br />support
|-
! {{rh}} | [[Adoptium|AdoptOpenJDK]]<ref>{{cite web |url=https://adoptopenjdk.net/ |title=AdoptOpenJDK - Open source, prebuilt OpenJDK binaries |access-date=2020-07-10}}</ref><br /><sub>(moved to Eclipse asTemurin Eclipseat Adoptium in 2021)</sub><ref>{{Cite web|title=Good-bye AdoptOpenJDK. Hello Adoptium!|url=https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/|access-date=2021-09-22|website=blog.adoptopenjdk.net|language=en}}</ref>
|
| {{yes}}
| {{yes}}
| {{yes}}
| {{no}}
| {{Optional}}
| {{Optional}} (IBM)
|-
! {{rh}} | Alibaba Dragonwell<ref>{{cite web |url=http://dragonwell-jdk.io/ |title=Alibaba Dragonwell |access-date=2021-06-14}}</ref>
| [[Alibaba Group|Alibaba]]
| {{yes}}
| {{yes}}
Line 113 ⟶ 136:
| {{yes}}
| {{yes}}
| {{yes}}
| {{no}}<ref>{{cite web |url=https://aws.amazon.com/blogs/opensource/introducing-amazon-corretto-crypto-provider-accp/|title= Amazon Introduces Amazon Corretto Crypto Provider (ACCP) }}</ref>
| {{Optional}} (on AWS)
|-
Line 132 ⟶ 155:
| {{Optional}}
|-
! {{rh}} | [[Adoptium|Eclipse Adoptium/Temurin]]<ref>{{cite web |url=https://adoptium.net/temurin/ |title=AdoptiumEclipse -Temurin Open source, prebuilt OpenJDK binaries|work=[[Adoptium]] |access-date=20202022-0805-0315}}</ref>
| [[Eclipse FoundationAdoptium]]
| {{yes}}
| {{yes}}
| {{yes}}
| {{no}}
| {{Optional}} (Azul, IBM, Red Hat)
|-
! {{rh}} | IBM SemeruJava Runtime Certified EditionSDK<ref>{{cite web |url=https://developer.ibm.com/languages/java/semeru-runtimesjavasdk/ |title=IBM Semeru RuntimesHome - IBMJava DeveloperSDK |access-date=20212020-0807-0310}}</ref><br /><sub>(moved to IBM Semeru Runtime Certified Edition at version 11)</sub>
| [[IBM]]
| {{yes}}
| {{no}}
| {{no}}<ref name=semeru-license>{{cite web |url=https://developer.ibm.com/blogs/introducing-the-ibm-semeru-runtimes/ |title=Introducing the no-cost IBM Semeru Runtimes to develop and run Java applications |access-date=2021-09-23}}</ref>
| {{yes}}
| {{no}}
| {{Optionalyes}} (IBM)
|-
! {{rh}} | IBM Semeru Runtime OpenCertified Edition<ref name="auto1">{{cite web |url=https://developer.ibm.com/languages/java/semeru-runtimes/ |title=IBM Semeru Runtimes - IBM Developer |access-date=2021-08-03}}</ref>
| [[IBM]]
| {{yes}}
| {{yes}}<ref>{{cite web | title=Semeru Runtimes support | website=IBM | date=2025-08-20 | url=https://www.ibm.com/support/pages/semeru-runtimes-support | access-date=2025-08-25}}</ref><ref name=semeru-license>{{cite web |url=https://developer.ibm.com/blogs/introducing-the-ibm-semeru-runtimes/ |title=Introducing the no-cost IBM Semeru Runtimes to develop and run Java applications |access-date=2021-09-23}}</ref>
| {{yes}}<ref name="semeru-license" />
| {{noyes}}
| {{no}}
| {{Optional}} (IBM)
|-
! {{rh}} | IBM Semeru Runtime Open Edition<ref name="auto1"/>
! {{rh}} | IBM Java SDK<ref>{{cite web |url=https://developer.ibm.com/javasdk/ |title=Home - Java SDK |access-date=2020-07-10}}</ref><sub>(version 11 moved to IBM Semeru Runtime Certified Edition)</sub>
| [[IBM]]
| {{yes}}
| {{yes}}<ref name="semeru-license" />
| {{no}}
| {{yes}}
| {{no}}
| {{yesOptional}} (IBM)
|-
! {{rh}} | JetBrains Runtime<ref>{{cite web |url=https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime |title=JetBrains Runtime - JetBrains Runtime - Confluence |access-date=2021-06-15}}</ref>
Line 172 ⟶ 195:
| {{no}}
|-
! {{rh}} | Microsoft Build of OpenJDK<ref>{{cite web |url=https://www.microsoft.com/openjdk |title=Microsoft Build of OpenJDK |website=[[Microsoft]] |access-date=2021-06-15}}</ref>
| [[Microsoft]]
| {{yes}}
Line 180 ⟶ 203:
| {{optional}} (on Azure)
|-
! {{rh}} | ojdkbuild<ref>{{cite web |url=https://github.com/ojdkbuild/ojdkbuild |title=ojdkbuild/ojdkbuild |website=[[GitHub]] |access-date=2020-07-10}}</ref><br /><sub>(Discontinued)</sub>
|
| {{yes}}
| {{yes}}
Line 189 ⟶ 212:
|-
! {{rh}} | OpenLogic OpenJDK<ref>{{cite web |url=https://www.openlogic.com/openjdk-downloads |title=OpenJDK Downloads|website=OpenLogic |access-date=2020-10-02}}</ref>
| [[Perforce#Acquired Rogue Wave Software products and services|OpenLogic]]
| [[OpenLogic]]
| {{yes}}
| {{yes}}
| {{no}}{{cn|reason=Reference needed if still valid|date=September 2023}}
| {{no}}
| {{no}}
| {{Optional}}
Line 198 ⟶ 221:
! {{rh}} | GraalVM Community Edition<ref>{{cite web |url=https://www.graalvm.org/ |title=GraalVM |website=[[GraalVM]] |access-date=2021-06-15}}</ref>
| [[GraalVM]]
| {{noyes}}
| {{yes}}
| {{yes}}
Line 204 ⟶ 227:
| {{no}}
|-
! {{rh}} | Oracle GraalVM Enterprise Edition<ref>{{cite web |url=https://www.oracle.com/java/graalvm/ |title=GraalVM Enterprise |department=Oracle Technology Network |website=[[Oracle Corporation|Oracle]] |access-date=2021-04-27}}</ref>
| [[Oracle Corporation|Oracle]]
| {{yes}}
| {{no}}
Line 212 ⟶ 235:
| {{yes}}
|-
! {{rh}} | Oracle Java SE<ref>{{cite web |url=https://www.oracle.com/technetwork/java/javasetechnologies/ |title=Java SE |department=Oracle Technology NetworkJava Technologies |website=[[Oracle Corporation|Oracle]] |access-date=20202022-0709-1017}}</ref>
| [[Oracle Corporation|Oracle]]
| {{yes}}
| {{no}}
Line 220 ⟶ 243:
| {{yes}}
|-
! {{rh}} | Oracle OpenJDK<ref name="auto">{{cite web |url=https://jdk.java.net/ |title=JDK Builds from Oracle |access-date=20202022-0709-1017}}</ref>
| [[Oracle Corporation|Oracle]]
| {{no}}<ref name="auto"/>
| {{yes}}<ref>{{cite web |url=https://openjdk.org/legal/gplv2+ce.html |title=OpenJDK: GPLv2 + Classpath Exception |access-date=2022-09-17}}</ref>
| {{yes}}
| {{no}}<ref>{{cite web |url=https://bugs.openjdk.java.net/browse/JDK-8215030 |title=[JDK-8215030] Disable shenandoah in Oracle builds |website=Java Bug System |access-date=2021-12-08 |url-status=live |archive-url=https://web.archive.org/web/20211209020013/https://bugs.openjdk.java.net/browse/JDK-8215030 |archive-date= Dec 9, 2021 }}</ref><ref>{{cite web |url=https://developers.redhat.com/blog/2019/04/19/not-all-openjdk-12-builds-include-shenandoah-heres-why |title=Not all OpenJDK 12 builds include Shenandoah: Here's why|date=April 19, 2019 |access-date=2021-12-08}}</ref>
| {{yes}}
| {{no}}<ref>{{cite web |url=https://bugs.openjdk.java.net/browse/JDK-8215030 |title=[JDK-8215030] Disable shenandoah in Oracle builds|access-date=2021-12-08}}</ref><ref>{{cite web |url=https://developers.redhat.com/blog/2019/04/19/not-all-openjdk-12-builds-include-shenandoah-heres-why |title=Not all OpenJDK 12 builds include Shenandoah: Here's why|access-date=2021-12-08}}</ref>
| {{no}}
|-
! {{rh}} | Red Hat build of OpenJDK<ref name="RHOJDK">{{cite web |url=https://developers.redhat.com/products/openjdk/overview |title=OpenJDK Overview |website=Red Hat Developer |access-date=2020-07-10}}</ref>
| [[IBMRed Hat]]
| {{yes}}
| {{yes}}
Line 244 ⟶ 267:
| {{optional}} (for SAP products)
|-
! {{rh}} | Tencent KonaJDK
| [[Tencent]]
| {{yes}}
| {{yes}}
| {{yes}}
| {{no}}
| {{optional}}
|}
 
Line 270 ⟶ 300:
| url=http://developer.classpath.org/pipermail/classpath/2007-June/002109.html
| title=Experimental Build Repository at icedtea.classpath.org
| last=Mark
| first=Wielaard
| date=June 7, 2007
| access-date=June 9, 2007}}
| archive-date=June 19, 2007
</ref>
| archive-url=https://web.archive.org/web/20070619012918/http://developer.classpath.org/pipermail/classpath/2007-June/002109.html
| url-status=dead
}}</ref>
 
On November 5, 2007, Red Hat signed both the Sun Contributor Agreement and the OpenJDK Community [[Technology Compatibility Kit|TCK]] License.<ref name="fitzsimAnnounce">{{cite web
Line 321 ⟶ 355:
|df = mdy-all
}}
</ref> [[Fedora (Linux distribution)|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<ref>[http://openjdk.java.net/legal/openjdk-trademark-notice.html OpenJDK trademark agreement]</ref>) instead of IcedTea.<ref name="fedora9redhat" /> [[Ubuntu (operating system)|Ubuntu]] also first packaged IcedTea7<ref name="ubuntu icedtea-java7">{{cite web
| url=https://launchpad.net/ubuntu/+source/icedtea-java7
| title=icedtea-java7 in Ubuntu
Line 355 ⟶ 389:
|df = mdy-all
}}
</ref> In July 2009, an IcedTea 6 binary build for [[Ubuntu (operating system)|Ubuntu 9.04]] passed all of the compatibility tests in the Java SE 6 [[Technology Compatibility Kit|TCK]].<ref>[{{Cite web|url=https://lists.ubuntu.com/archives/ubuntu-devel-announce/2009-July/000587.html |title=Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty)]|first=Matthias|last=Klose|date=July 11, 2009}}</ref>
 
Since August 2008, OpenJDK 7 is usable on [[macOS]] and other [[Berkeley Software Distribution|BSD]] variants.<ref>{{cite web
Line 365 ⟶ 399:
</ref>
 
On [[Android Nougat]], OpenJDK replaced the now-discontinued [[Apache Harmony]] as the Java libraries in the source code of the [[mobile operating system]]. [[Google]] was in a [[Oracle America, Inc. v. Google, Inc.|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.<ref name=ars-njdk>{{cite web|title=Android N switches to OpenJDK, Google tells Oracle it is protected by the GPL|url=https://arstechnica.com/tech-policy/2016/01/android-n-switches-to-openjdk-google-tells-oracle-it-is-protected-by-the-gpl/|website=Ars Technica|date=January 6, 2016 |access-date=7 January 2016}}</ref>
 
==History==
{{see also|Java (Sun)#Licensing}}
 
===Sun's promise and initial release===
[[Sun Microsystems|Sun]] announced in [[JavaOne|JavaOne 2006]] that Java would become open-source software,<ref>{{cite web|url=http://blogs.sun.com/roller/page/jonathan/200605#busy_week1 |title=Busy Week... |last=Schwartz |first=Jonathan |publisher=Sun Microsystems |date=May 23, 2006 |access-date=May 9, 2007 |url-status=dead |archive-url=https://web.archive.org/web/20060717164412/http://blogs.sun.com/roller/page/jonathan/200605 |archive-date=July 17, 2006 }}</ref><ref>{{cite web|url=http://mediacast.sun.com/share/tmarble/Sun_Opens_Java.ogg |format=[[OGG Theora]] |title=Sun Opens Java |publisher=[[Sun Microsystems]] |url-status=dead |archive-url=https://web.archive.org/web/20090319020035/http://mediacast.sun.com/share/tmarble/Sun_Opens_Java.ogg |archive-date=March 19, 2009 }}</ref> and on October 25, 2006, at the [[Oracle OpenWorld]] conference, [[Jonathan I. Schwartz|Jonathan Schwartz]] said that the company intended to announce the open-sourcing of the core [[Java Platform]] within 30 to 60 days.<ref>{{cite web
| url= http://www.infoworld.com/d/developer-world/sun-ceo-sets-open-source-java-time-frame-558
| title = Sun CEO sets open source Java time frame - Announcement set for 30 to 60 days
| publisher=[[InfoWorld]]
| date = October 25, 2006
| access-date=2011-12-22}}</ref>
 
Sun released the Java [[HotSpot (virtual machine)|HotSpot]] virtual machine and compiler as [[free software]] under the [[GNU General Public License]] 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".<ref>{{cite web
| url= http://www.sun.com/2006-1113/feature/index.jsp
| title = Sun Opens Java
| publisher=Sun Microsystems
| date = November 13, 2006
|access-date=May 9, 2007 |archive-url = https://web.archive.org/web/20070421151747/http://www.sun.com/2006-1113/feature/index.jsp <!-- Bot retrieved archive --> |archive-date = April 21, 2007}}</ref> According to free-software advocate [[Richard Stallman]], this would end the "Java trap", the [[vendor lock-in]] that he argues applied to Java and programs written in Java.<ref>{{cite web | url=https://www.gnu.org/philosophy/java-trap.html | title=Free But Shackled—The Java Trap | last=Stallman | first=Richard | access-date=December 4, 2007}}</ref>
 
===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,<ref>[http://www.sun.com/software/opensource/java/faq.jsp#b4 Oracle and Sun] {{Webarchive|url=https://www.webcitation.org/65tawvVM4?url=http://www.oracle.com/us/sun/index.htm#b4 |date=March 3, 2012 }}. Sun.com (2011-10-04). Retrieved on 2013-08-09.</ref> Sun released the complete [[source code]] 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 [[Software relicensing|re-license]] under the GPL.<ref>{{cite web
| url= http://mail.openjdk.java.net/pipermail/announce/2007-May.txt | title = Open JDK is here!
| publisher=Sun Microsystems
| date = May 8, 2007
| access-date=May 9, 2007}}</ref> Included in the list of encumbered parts were several major components of the Java [[graphical user interface]] (GUI). Sun stated that it planned to replace the remaining [[proprietary software|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.<ref>{{cite web
| url=http://fitzsim.org/blog/?p=17
| title=Plans for OpenJDK
| last=Fitzsimmons|first=Thomas
| date=May 18, 2007
| access-date=May 22, 2007}}</ref> By the appearance of OpenJDK 6 in May 2008, less than 1% (the [[Simple Network Management Protocol|SNMP]] implementation,<ref name="openjdk b10" /> which is not part of the Java specification) remained,<ref name="fedora9redhat"/> making it possible to build OpenJDK without any binary plugs.<ref name="openjdk b10">{{cite web
|url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html
|title=OpenJDK 6 b10 source posted
|date=May 30, 2008
|access-date=June 1, 2008
}}</ref> The binary plug requirement was later dropped from OpenJDK 7 as part of b53 in April 2009.<ref>{{cite web
|url = http://download.java.net/jdk7/changes/jdk7-b53.html
|title = Changes in OpenJDK7 b53
|date = April 2, 2009
|access-date = September 5, 2009
|url-status = dead
|archive-url = https://web.archive.org/web/20090406171143/http://download.java.net/jdk7/changes/jdk7-b53.html
|archive-date = April 6, 2009
|df = mdy-all
}}</ref>
 
This was made possible, over the course of the first year, by the work of [[Sun Microsystems]] and the OpenJDK community. Each encumbrance<ref>{{cite web
|url = http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
|title = Plans for OpenJDK
|last = Herron
|first = David
|date = October 4, 2007
|access-date = October 9, 2007
|url-status = dead
|archive-url = https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
|archive-date = October 11, 2007
|df = mdy-all
}}</ref> 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 software|open-source]] replacements, making the whole JDK open sourced and the ''binary plugs'' not necessary anymore.<ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html
| title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed
| author=Kelly O'Hair
| publisher=[[Oracle Corporation]]
| date=December 2010
| access-date=2011-11-25}}</ref>
 
===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).<ref>[http://www.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20071105005882&newsLang=en Broad contributor agreement and TCK License pave way for a fully compatible, free and open-source Java Development Kit for Red Hat Enterprise Linux]</ref>
 
Also in November 2007, the ''Porters Group'' was created on OpenJDK to aid in efforts to port OpenJDK to different [[microarchitecture|processor architectures]] and [[operating system]]s. The [[BSD]] porting project led by Kurt Miller and Greg Lewis and the [[Mac OS X]] 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 (operating system)|Haiku]] Java Team led by Bryan Varner.<ref>{{cite web|url=http://haiku-os.org/news/2008-01-03/new_java_for_haiku_team_formed|archive-url=https://web.archive.org/web/20080105150946/http://haiku-os.org/news/2008-01-03/new_java_for_haiku_team_formed|url-status=dead|archive-date=January 5, 2008|title=New java for haiku team formed|date=January 3, 2008|author=koki|publisher=Haiku}}</ref>
 
In December 2007, Sun moved the [[revision control]] of OpenJDK from [[Sun WorkShop TeamWare|TeamWare]] to [[Mercurial]] (and later to [[Git]] and [[GitHub]]), as part of the process of releasing it to [[open-source software|open-source]] communities.<ref>{{cite interview
| subject = [[James Gosling]]
| interviewer = Robert Eckstein
| url = http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html
| title = James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1
|date=October 2006
}}</ref><ref>{{cite web
|last = O'Hair
|first = Kelly
|date = December 12, 2007
|title = Mercurial OpenJDK Questions
|url = http://blogs.sun.com/kto/entry/mercurial_openjdk_questions
|url-status = dead
|archive-url = https://www.webcitation.org/6671inOnV?url=https://blogs.oracle.com/roller-ui/errors/404.jsp
|archive-date = March 12, 2012
|df = mdy-all
}}</ref>
 
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).<ref>{{cite web
| url = http://oss.oracle.com/oca.pdf
| title = Sun Microsystems Inc. Contributor Agreement}}</ref> Preferably, there should also be a [[JavaTest harness|jtreg]]<ref>{{cite web
| url = http://openjdk.java.net/jtreg/
| title = Regression Test Harness for the OpenJDK platform: jtreg
| access-date = August 26, 2008
}}</ref> test demonstrating the bug has been fixed. Initially, the external patch submission process was slow<ref>{{cite web
| url = http://www.javalobby.org/java/forums/t98834.html
| title = Classpath hackers frustrated with slow OpenJDK process
| last = Tripp
| first = Andy
| date = July 16, 2007
| access-date = April 20, 2008
| archive-url = https://www.webcitation.org/6671kDV9H?url=http://www.javalobby.org/java/forums/t98834.html
| archive-date = March 12, 2012
| url-status = dead
}}</ref> and, until September 2008, commits to the [[codebase]] were only made by Sun engineers.<ref>{{cite web|url=http://kennke.org/blog/2008/09/29/a-small-step-for-me/ |title=A small step for me |last=Kennke |first=Roman |date=September 29, 2008 |access-date=October 19, 2008 |url-status=dead |archive-url=https://web.archive.org/web/20081003094214/http://kennke.org/blog/2008/09/29/a-small-step-for-me/ |archive-date=October 3, 2008 }}</ref> The process has improved and, {{as of|2010|lc=on}}, simple patches and backports from OpenJDK 7 to OpenJDK 6 can take place within hours rather than days.<ref>{{cite web
| url = http://mail.openjdk.java.net/pipermail/jdk6-dev/2010-June/001708.html
| title = Backporting changeset from 7 to 6 for bugfix
| last=Darcy|first=Joe
| date = June 10, 2010}}</ref>
 
In 2011, an unofficial port of OpenJDK 6.0 to OS/2 was first released.<ref>{{cite web|url=https://trac.netlabs.org/java|website=netlabs.org|access-date=2020-09-09|title=Java for OS/2 and OS/2-based systems}}</ref> This port is included in the OS/2 derivative [[ArcaOS]].<ref>{{cite web|url=https://www.arcanoae.com/wiki/arcaos/compatibility-subsystems/|title=Compatibility Subsystems|access-date=2020-09-09|website=arcanoae.com}}</ref>
 
On 25 September 2013, Microsoft and [[Azul Systems]] collaborated to create Zulu,<ref>{{Cite web|title = Microsoft, Azul Bring OpenJDK to Windows Azure With 'Zulu'|url = http://www.eweek.com/developer/microsoft-azul-bring-openjdk-to-windows-azure-with-zulu.html|website = www.eweek.com|access-date = 2015-12-03}}</ref> a build of OpenJDK for users of the Windows Azure cloud. Zulu is available as a free download from the community site [http://zulu.org/ Zulu.org]. It is also possible to get Zulu on Amazon Web Services<ref>{{Cite web|title = Azul Zing goes live on Red Hat Enterprise Linux on Amazon Web Services {{!}} Financial Industry & Algorithmic Trading News {{!}} Automated Trader|url = http://www.automatedtrader.net/news/at/154682/azul-zing-goes-live-on-red-hat-enterprise-linux-on-amazon-web--services|website = www.automatedtrader.net|access-date = 2015-12-03}}</ref> via Canonical's Juju Charm Store,<ref>{{Cite web|title = Azul Systems Joins Canonical's Charm Partner Program|url = http://www.enterprisetech.com/2015/07/22/azul-systems-joins-canonicals-charm-partner-program/|website = EnterpriseTech|access-date = 2015-12-03}}</ref> the Docker Hub,<ref>{{Cite web|title = Azul Systems puts Java 8 into Docker containers for Linux users|url = http://www.v3.co.uk/v3-uk/news/2371497/azul-systems-puts-java-8-into-docker-containers-for-linux-users|website = www.v3.co.uk|access-date = 2015-12-03}}</ref> and Azul Systems repositories. Azul contributes bug fixes and enhancements back to the OpenJDK project and has several project committers on staff.<ref>{{Cite news|url=https://www.azul.com/products/zulu-and-zulu-enterprise/java-standards/|title=Java Standards: Essential for Your Business - Azul Systems, Inc.|work=Azul Systems, Inc.|access-date=2018-02-06|language=en-US}}</ref>
 
Since April 2016 there are unsupported community builds of OpenJDK for [[Microsoft Windows]] on [[GitHub]] in the project [https://github.com/ojdkbuild/ojdkbuild ojdkbuild] which are released in pace with updates for [[Oracle Corporation|Oracle]] JDK. From build 8u151 on, the MSI-installer offers an optional component for using [[Java Web Start]] based on the [[IcedTea#IcedTea-Web|IcedTea-Web]] project.
 
In 2020, a port of OpenJDK 8 to [[OpenVMS]] on the [[Itanium]] platform was released.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-06-10-openjdk-announcement/|title=New OpenJDK for OpenVMS announced|date=2020-06-10|website=vmssoftware.com|access-date=2020-09-09}}</ref>
 
The number of external contributions to OpenJDK is growing since project inception. OpenJDK 11, released in September 2018, received 20% of external fixes<ref>{{cite web
| url=https://blogs.oracle.com/java-platform-group/building-jdk-11-together
| title=Building JDK 11 Together
| author=Dalibor Topic
| publisher=[[Oracle Corporation]]
| date=October 2018
| access-date=2019-05-27}}</ref> 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).<ref>{{cite web
| url=https://openjdk.java.net/projects/jdk/11/
| title=JDK 11
| author=Mark Reinhold
| publisher=[[Oracle Corporation]]
| date=October 2018
| access-date=2019-05-27}}</ref>
 
===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 Corporation|Oracle]] on the OpenJDK project, effectively shifting its efforts from Harmony to OpenJDK.<ref>{{cite web
| url=http://www.marketwire.com/press-release/Oracle-and-IBM-Collaborate-to-Accelerate-Java-Innovation-Through-OpenJDK-NASDAQ-ORCL-1332855.htm
| title=Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK
| publisher=[[Oracle Corporation]]
| access-date=October 22, 2010}}</ref><ref>{{cite web
| url=https://arstechnica.com/open-source/news/2010/10/ibm-joins-openjdk-as-oracle-shuns-apache-harmony.ars
| title=Java wars: IBM joins OpenJDK as Oracle shuns Apache Harmony
|author=Ryan Paul
| publisher=Ars Technica
| access-date=October 22, 2010}}</ref> 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".<ref>{{cite web
| url=http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/
| title=IBM joins the OpenJDK community, will help unify open source Java efforts
| author=Bob Sutor
| quote=IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. For others who wish to do the same, we’ll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.
| access-date=October 22, 2010
| archive-url=https://web.archive.org/web/20101018160132/http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/
| archive-date=October 18, 2010
| url-status=dead
}}</ref>
 
On November 12, 2010, [[Apple Inc.]] (just three weeks after deprecating its own Java runtime port<ref>{{cite web
| url=https://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html
| title=Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes
| date=October 20, 2010}}</ref>) 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.<ref>{{cite web
| url=http://www.businesswire.com/news/home/20101112005253/en/Oracle-Apple-Announce-OpenJDK-Project-Mac-OS
| title=Oracle and Apple Announce OpenJDK Project for Mac OS X
| publisher=[[Business Wire]]
| date=November 12, 2010
| quote=Oracle and Apple today 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. OpenJDK will make Apple’s Java technology available to open source developers so they can access and contribute to the effort.
| access-date=2010-11-12}}</ref>
 
On January 11, 2011, the Mac OS X Port Project was created on OpenJDK, and [[Apple Inc.|Apple]] made the first public contribution of code to the project. The initial Apple contribution built on the OpenJDK [[Berkeley Software Distribution|BSD]] port.<ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/macosx-port-dev/2011-January/000007.html
| title=Announcing: OpenJDK for Mac OS X source repository, mailing list, project home
| author=Mike Swingler ([[Apple Inc.|Apple]])
| publisher=OpenJDK
| date=January 11, 2011
| quote=''I'm very happy to let you know that today we made the first public contribution of code to the OpenJDK project for Mac OS X. This initial contribution builds on the hard work of the BSD port, and initially has the same functionality. Today's contribution simply modifies the build process to create universal binary, and produces a .jdk bundle which is recognized by Java Preferences and the JVM detection logic in Mac OS X.''
| access-date=2010-11-12}}</ref>
 
In July 2011, [[SAP AG]] announced that SAP officially joined the OpenJDK project.<ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/discuss/2011-July/001982.html
| title=SAP joins the OpenJDK
| author=Volker Simonis ([[SAP AG]])
| publisher=OpenJDK
| date=July 14, 2011
| quote=''I'm really happy that as of today, SAP has signed the Oracle Contributor Agreement (OCA). This means that with immediate effect the SAP JVM developers can officially join the discussions on the various OpenJDK mailing lists and contribute patches and enhancements to the project.''
| access-date=2010-11-12}}</ref>
 
==See also==
* [[Free Java implementations]]
 
==References==
Line 556 ⟶ 408:
 
==External links==
* [http://openjdk.java.net/ Main site]
* [http://jdk.java.net/ OpenJDK builds from Oracle]
* [https://adoptium.net OpenJDK builds from Adoptium]
* [https://developers.redhat.com/products/openjdk/overview/ OpenJDK builds from Red Hat]
* [https://adoptopenjdkwww.netmicrosoft.com/openjdk OpenJDKMicrosoft buildsBuild fromof AdoptOpenJDKOpenJDK]
* [https://wwwsapmachine.microsoft.comio/openjdk MicrosoftSapMachine, Buildthe OpenJDK build of OpenJDKSAP]
*[ {{cite web|url=https://www.youtube.com/watch?v=wHoRBvt3U6o |title=Java in 2018: Change is the Only Constant Keynote by |first=Mark |last=Reinhold] |website=YouTube}}
*[https:// {{cite web.archive.org/web/20090531095111/ |url=http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html |title=Zero and Shark: a Zero-Assembly Port of OpenJDK] |first=Gary |last=Benson |date=May 21, 2009 |website=java.net |access-date=March 4, 2018 |archive-date=May 31, 2009 |archive-url=https://web.archive.org/web/20090531095111/http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html |url-status=bot: unknown }}
* [http://hg.openjdk.java.net/ OpenJDK official source code]
 
{{Java (software platform)}}
{{Java Virtual Machine}}
{{Oracle FOSS}}
{{Sun Microsystems}}
{{Portal bar|Free and open-source software|Computer programming}}