Free Java implementations are
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
projects that implement Oracle's
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
technologies and are distributed under
free software licences, making them
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
. 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 descr ...
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 form of intellectual property that consists of a word, phrase, symbol, design, or a combination that identifies a Good (economics and accounting), product or Service (economics), service f ...
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 user (computing), software users, namely the freedoms to run, study, modify, and share copies of software. Software which meets thes ...
developed other Java compilers, most notably the
GNU Compiler for Java. Others include the
Eclipse Java Compiler (ECJ), which is maintained by the
Eclipse Foundation, and
Jikes, which is no longer actively maintained. Since the
GNU Compiler Collection
The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, Computer architecture, hardware architectures, and operating systems. The Free Software Foundation (FSF) distributes ...
's 4.3 release, GCJ (its Java compiler) is using the ECJ
parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
front-end for parsing Java.
Examples of free
runtime environments include
Kaffe,
SableVM and
gcj.
GNU Classpath is the main free software
class library for Java. Most free runtimes use GNU Classpath as their class library.
In May 2005,
Apache Harmony was announced, however, the project chose the
Apache License
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
, which was at the time incompatible with all existing free Java implementations.
Another event in May 2005 was the announcement that
OpenOffice.org 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 and
Vuze, both of which work when compiled with GCJ.
Sun's November 2006 announcement
On November 13, 2006, Sun released its compiler,
javac, under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
.
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 or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
) and almost all the
Java Class Library as free software.
Following their promise to release a fully buildable
JDK based almost completely on free and open source code in the first half of 2007, Sun released the complete
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
of the 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 implementation.
[
]
Since the first May 2007 release,
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
, 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, 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 "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
classes used in the Class library have been released as free software,
*
FreeType has replaced the code that scales and
rasterizes fonts.
[Java2D project page](_blank)
*
LittleCMS 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
A phoneme () is any set of similar Phone (phonetics), speech sounds that are perceptually regarded by the speakers of a language as a single basic sound—a smallest possible Phonetics, phonetic unit—that helps distinguish one word fr ...
project has replaced the
anti-aliasing graphics
rasterizer code.
This code is fully functional, but still needs some performance enhancements,
* The
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
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 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 in
Fedora Core and other free
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
distributions,
Red Hat has started a project called
IcedTea. It is basically an OpenJDK/
GNU Classpath 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 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 for
Windows Server and the
Microsoft Azure Cloud. Later releases added support for
Mac OS X, multiple versions of
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and the
Java Platform, Standard Edition
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of porting, portable code for desktop computer, desktop and server (computing), server environments. Java SE was formerly known as Java 2 Platform, S ...
version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the OpenJDK Community
Technology Compatibility Kit.
Amazon
Amazon most often refers to:
* Amazon River, in South America
* Amazon rainforest, a rainforest covering most of the Amazon basin
* Amazon (company), an American multinational technology company
* Amazons, a tribe of female warriors in Greek myth ...
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. Long-term support versions of Java 8 and Java 11 are available. It was first publicly released on January 31, 2019.
In 2017, the
Eclipse Foundation released AdoptOpenJDK, now named
Adoptium, whose main goal is "to promote and support
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
high-quality runtimes and associated technology for use across the
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
ecosystem."
See also
*
Java (software platform)
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
*
javac
*
HotSpot
*
Apache Harmony
*
OpenJDK
*
GNU Classpath and
GCJ
*
IcedTea
*
JamVM
*
IKVM
*
List of Java virtual machines
*
Comparison of Java virtual machines
*
Adoptium
References
External links
Free But Shackled - The Java TrapEscaping the Java Trap: A practical road map to the Free Software and Open Source alternativesHybrids Combine GNU Classpath and OpenJDKHour long 2007 video of a workshop with Sun, GGJ, and GNU Classpath developersJava Trademark Issues
{{DEFAULTSORT:Free Java Implementations
Java virtual machine
Free virtualization software