HOME

TheInfoList



OR:

Free Java implementations are
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
projects that implement Oracle's
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
technologies and are distributed under
free software licences A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author ...
, making them
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, n ...
. Sun released most of its Java source code as free software in May 2007, so it can now almost be considered a free Java implementation. Java implementations include compilers, runtimes, class libraries, etc. Advocates of free and open source software refer to free or open source
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describe ...
software as free runtimes or free Java runtimes. Some advocates in this movement prefer not to use the term "Java" as it has
trademark A trademark (also written trade mark or trade-mark) is a type of intellectual property consisting of a recognizable sign, design, or expression that identifies products or services from a particular source and distinguishes them from ot ...
issues associated with it. Hence, even though it is a "free Java movement", the term "free Java runtimes" is avoided by them.


Mid-1990s to 2006

The first free project to offer substantial parts of Java platform functionality was likely guavac, which began some time before November 1995. Since then, the
free software movement The free software movement is a social movement with the goal of obtaining and guaranteeing certain freedoms for software users, namely the freedoms to run the software, to study the software, to modify the software, and to share copies of the s ...
developed other Java compilers, most notably the
GNU Compiler for Java The GNU Compiler for Java (GCJ) is a free compiler for the Java programming language. It was part of the GNU Compiler Collection for over ten years but as of 2017 it is no longer maintained and will not be part of future releases. GCJ compiles ...
. Others include the
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three c ...
Java Compiler (ECJ), which is maintained by the
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
, and Jikes, which is no longer actively maintained. Since the
GNU Compiler Collection The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free softwar ...
's 4.3 release, GCJ (its Java compiler) is using the ECJ
parser Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lat ...
front-end for parsing Java. Examples of free runtime environments include
Kaffe Kaffe is a discontinued "clean room design" ( reverse engineering) version of a Java Virtual Machine. It comes with a subset of the Java Platform, Standard Edition (Java SE), Java API, and tools needed to provide a Java runtime environment. L ...
, SableVM and gcj.
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 ...
is the main free software class library for Java. Most free runtimes use GNU Classpath as their class library. In May 2005,
Apache Harmony Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the Board of Directors voted to make Apache Harmony a top-level project ...
was announced, however, the project chose the Apache License, which was at the time incompatible with all existing free Java implementations. Another event in May 2005 was the announcement that
OpenOffice.org OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed), Apache OpenOffice, Collabora Online (enterprise ready LibreOffice) a ...
2.0 would depend on Java features which free software implementations couldn't provide. Following controversy, OpenOffice.org adopted a guideline requiring it to work with free Java implementations. Notable applications that already worked with free software Java implementations before November 2006 include
OpenOffice.org OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed), Apache OpenOffice, Collabora Online (enterprise ready LibreOffice) a ...
and
Vuze Vuze (previously Azureus) is a BitTorrent client used to transfer files via the BitTorrent protocol. Vuze is written in Java, and uses the Azureus Engine. In addition to downloading data linked to .torrent files, Azureus allows users to view, p ...
, both of which work when compiled with GCJ.


Sun's November 2006 announcement

On 13 November 2006, Sun released its 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 accept ...
, 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 ...
. As of September 2007, as well as javac, Sun has released the code of HotSpot (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 h ...
) and almost all 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 ...
as free software. Following their promise to release a fully buildable
JDK 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 ...
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 Class library under the GPL on May 8, 2007, except some limited parts that were licensed by Sun from 3rd parties who did not want their code to be released under a free software licence. Sun has stated that it aims to replace the parts that remain proprietary and closed source with alternative implementations and make the class library completely free and open source. Since there's some encumbered code in the JDK, Sun will continue to use that code in commercial releases until it's replaced by fully functional free and open-source alternatives.


After the May 2007 code release

As of May 2008, the only part of the Class library that remains proprietary (4% as of May 2007 for OpenJDK 7, and less than 1% as of May 2008 in OpenJDK 6 ) is 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. Since the first May 2007 release,
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 ...
, with the help of the community, has released as free software (or replaced with free-software alternatives) almost all the encumbered code: * All the audio engine code, including the
software synthesizer A software synthesizer or softsynth is a computer program that generates digital audio, usually for music. Computer software that can create sounds or music is not new, but advances in processing speed now allow softsynths to accomplish the sam ...
, has been released as open-source. The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called ''Gervill'', * All
cryptography Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adv ...
classes used in the Class library have been released as free software, * FreeType has replaced the code that scales and rasterizes
fonts In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a " sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design. In mod ...
.Java2D project page
*
LittleCMS Little CMS or LCMS is an open-source color management system, released as a software library for use in other programs which will allow the use of International Color Consortium profiles. It is licensed under the terms of the MIT License. LCMS w ...
has replaced the native color-management system. There is a pluggable layer in the JDK, so that the commercial version can use the old color management system and OpenJDK can use LittleCMS. * The open-sourced Pisces renderer used in the
phoneME In phonology and linguistics, a phoneme () is a unit of sound that can distinguish one word from another in a particular language. For example, in most dialects of English, with the notable exception of the West Midlands and the north-wes ...
project has replaced the anti-aliasing graphics
rasterizer In computer graphics, rasterisation (British English) or rasterization (American English) is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image (a series of pixels, dots or lines, whi ...
code. This code is fully functional, but still needs some performance enhancements, * The
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
plugin has been open-sourced ( the JavaScript engine itself was open-sourced from the beginning). Because of these previously encumbered components, it was not possible to build
OpenJDK OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only w ...
only with free software components. In order to be able to do this before the whole class library is made free, and to be able to bundle
OpenJDK OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only w ...
in Fedora Core and other free
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, whi ...
distributions,
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 a ...
has started a project called IcedTea. It is basically 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 can be used to bootstrap OpenJDK using only free software. As of March 2008, the Fedora 9 distribution has been released with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Some of the stated reasons for this change are: * Sun has replaced most of the encumbrances for which IcedTea was providing replacements (less than 1% of encumbered code remains in the class library, and this code is not necessary to run OpenJDK). * OpenJDK 6 was a stable branch, whereas OpenJDK 7 was unstable and not expected to ship a stable release until 2009. * Sun has licensed the OpenJDK trademark for use in Fedora. In June 2008, it was announced that IcedTea 6 (as the packaged version of OpenJDK on Fedora 9) 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 ...
tests and can claim to be a fully compatible Java 6 implementation. In September 2013, Azul Systems released Zulu, a free, open source build of
OpenJDK OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only w ...
for
Windows Server Windows Server (formerly Windows NT Server) is a group of operating systems (OS) for servers that Microsoft has been developing since July 27, 1993. The first OS that was released for this platform was Windows NT 3.1 Advanced Server. With the r ...
and the
Microsoft Azure Microsoft Azure, often referred to as Azure ( , ), is a cloud computing platform operated by Microsoft for application management via around the world-distributed data centers. Microsoft Azure has multiple capabilities such as software as a ...
Cloud. Later releases added support for
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 lap ...
, multiple versions of
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, whi ...
and 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 ...
version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the 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 ...
.
Amazon Amazon most often refers to: * Amazons, a tribe of female warriors in Greek mythology * Amazon rainforest, a rainforest covering most of the Amazon basin * Amazon River, in South America * Amazon (company), an American multinational technolog ...
have released Amazon Corretto a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit. It is released under GPL v2 with the
Classpath Exception A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be " linked to" the programs that use them, without applying the full terms of the GPL to the using program ...
. Long term support versions of Java 8 and Java 11 are available. It was first publicly released on 31 January 2019. In 2017, the
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
released AdoptOpenJDK, now named
Adoptium The Eclipse Adoptium () Working Group is the successor of AdoptOpenJDK. The main goal of Adoptium is to promote and support free and open-source high-quality runtimes and associated technology for use across the Java ecosystem. To do so the Ad ...
, who's main goal is "to promote and support
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 ...
high-quality runtimes and associated technology for use across the
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
ecosystem."


See also

*
Java (software 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 ...
*
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 accept ...
* HotSpot *
Apache Harmony Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the Board of Directors voted to make Apache Harmony a top-level project ...
*
OpenJDK OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only w ...
*
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 ...
, GCJ, and GIJ * IcedTea * JamVM *
IKVM.NET IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. IKVM is free software, distributed under the zlib permissive free software license. The original developer, Jeroen Frijters, discontinued work on IKVM in 2015. ...
* List of Java virtual machines *
Comparison of Java virtual machines : Version information Technical information Supported CPU architectures Supported operating systems References {{Java Virtual Machine Java platform software Java virtual machine Software comparisons ...
*
Adoptium The Eclipse Adoptium () Working Group is the successor of AdoptOpenJDK. The main goal of Adoptium is to promote and support free and open-source high-quality runtimes and associated technology for use across the Java ecosystem. To do so the Ad ...


References


External links


Free But Shackled - The Java Trap

Escaping the Java Trap: A practical road map to the Free Software and Open Source alternatives

Hybrids Combine GNU Classpath and OpenJDK

Hour long 2007 video of a workshop with Sun, GGJ, and GNU Classpath developers

Java Trademark Issues
{{DEFAULTSORT:Free Java Implementations Java virtual machine Free virtualization software