- A clear release process, including stable release branches and other processes you'd expect from a FOSS project.
- Inclusion of bug fixes ahead of inclusion in upstream OpenJDK
- JIT support for additional platforms (ARM32 on IcedTea 1.x, ARM32, ppc64, ppc64le & AArch64 on IcedTea 2.x and AArch64 on IcedTea 3.x)
- Support for alternative JamVM & CACAO virtual machines
Read the Original Announcement.
Note that plugin and Web Start support are now provided by a separate project, IcedTea-Web.
As well as IcedTea, we also now host repositories for:
- IcePick, which allows the OpenJDK language tools (javac, javadoc, javah, javap, apt) to be built separately using any 1.5 compliant Java compiler and be used by any GNU Classpath based runtime
- BrandWeg, which adds elements of OpenJDK to the existing sources of GNU Classpath.
- Build support for VisualVM, a lightweight profiler and troubleshooting tool.
- Thermostat an instrumentation tool for the Hotspot JVM, with support for monitoring multiple JVM instances on multiple hosts, optionally in a cloud environment.
Also of relevance is the CVMI OpenJDK project, which aims to document the OpenJDK VM interface and foster links with alternative VMs. Discussion of this takes place on email@example.com and on the CVMIDiscussion page here on the IcedTea wiki.
1 Getting IcedTea
Stable releases (currently the IcedTea 1.13 series of releases based on OpenJDK 6, IcedTea 2.6 series based on OpenJDK 7 and IcedTea 3.0 series based on OpenJDK 8) and RPMs of IcedTea are available on the Downloads page.
Note that versioning works as follows:
- The major version corresponds to a specific JDK (1 = OpenJDK6, 2 = OpenJDK7, 3 = OpenJDK8). Early pre-releases of OpenJDK7 also used a major version number of 1, so the nomenclature 'IcedTeaX' also tends to be used to indicate which JDK the release applies to (where X is the JDK version).
- The minor version corresponds to a specific release branch, and usually brings a significant number of new features and improvements.
- The macro version corresponds to a new minor update of a particular release branch, and includes security fixes and important bug fixes which have been backported from the main development tree.
Current IcedTea policy is to maintain one minor release per major release at any one time, via release branches and appropriate macro releases, with a short transition period of one security release. Thus, release n is classed as unsupported after the first security release following the release of n + 1. Macro releases consist only of bug fixes and security fixes. They do not contain changes to the build system.
Releases are made by the designated maintainer following the release process. Maintainers are assigned on a meritocratic basis; the role is generally given to anyone who is prepared to do such an unrewarding job. The current maintainers are:
|IcedTea||Andrew John Hughes|
|IcedTea-Sound||Andrew John Hughes|
The currently supported releases are:
|Release||OpenJDK Relationship||Default HotSpot||Alternate HotSpot||Expires With|
|IcedTea 1.13.12 (hg)||OpenJDK6 b40 + patches||hs23.40-b40 + ARM32 port||N/A||IcedTea 1.14.2|
|IcedTea 2.6.7 (hg)||OpenJDK 7 u111b01 & IcedTea patches||hs24.111-b01 + ARM32, AArch64 & PPC64(be&le) ports||N/A||IcedTea 2.7.2|
|IcedTea 3.1.0 (hg)||OpenJDK 8 u101b13 & IcedTea patches||hs25.101-b13 + AArch64 port||hs25.101-b13 + AArch64 port + Shenandoah||IcedTea 3.2.1|
The number of patches applied has dramatically decreased in the 2.x series and we hope to see more of the lingering patches go upstream. The remaining ones are changes to allow the use of system libraries and to support esoteric architectures. With IcedTea 2.x onwards, unconditional patches (the vast majority) are applied to a fork of the upstream OpenJDK forests for the appropriate major version. As a result, the raw upstream OpenJDK version on which IcedTea is based can be obtained via Mercurial by checking out the appropriate tag (e.g. jdk7u91-b02 for the u91 release).
2 Quickstart & Building
Firstly, download the latest release of IcedTea6; see above. We recommend the one with the highest version number. You should then unpack and build the release as follows:
$ ./configure $ make
A full list of required packages is available at BuildRequirements. CommonIssues lists some of the problems you may encounter in building IcedTea and their solution. Note that JAVA_HOME should be unset before attempting to build IcedTea.
Any bugs found should be filed in our bug database.
3 Contributing to IcedTea
All contributions to IcedTea are greatly welcomed. The best way to get involved is to sign up to our mailing list and tell us what you're interested in doing. We don't bite -- honest! -- unless asked. Please be respectful when posting to the mailing list, and treat others as you would wish to be treated. We are generally a friendly bunch and it makes for a better working environment for all if you refrain from making aggressive remarks or personal attacks.
IcedTea is maintained in a number of Mercurial repositories. Details of these can be found on the developer's quick start page.
- A list of FrequentlyAskedQuestions is available.
- JCKDistilled describes how to run the JCK against IcedTea.
- ZeroSharkFaq answers some frequently asked questions about Zero and Shark.
- CrossCompileFaq describes how to use Jalimo to cross compile Icedtea.
- BuildingOpenJDK describes how to build OpenJDK without IcedTea.
- UpstreamingFaq describes how to push IcedTea patches upstream
- IcedTea6 Patches lists the upstream status of various IcedTea6 patches.
- IcedTea 7 forest patches lists the upstream status of various IcedTea7 patches.
- Current jtreg issues
- IcedTea patches for OpenJDK 8 lists the upstream status of various IcedTea patches for OpenJDK 8.
5 Upstream Links
6 Google Summer of Code 2014
IcedTea has been proposed as a Mentoring Organisation in the 2014 Google Summer Of Code. The following page should direct you to the right places: