Main Page

From IcedTea

Jump to: navigation, search


The IcedTea project provides a harness to build the source code from using Free Software build tools and adds a number of key features to the upstream OpenJDK codebase:

  • 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 and on the CVMIDiscussion page here on the IcedTea wiki.


1 Getting IcedTea

Stable releases (currently the 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. Full details of the latest stable IcedTea7 and IcedTea8 releases are available on the release maintainer's blog.

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:

Project Maintainer
IcedTea Andrew John Hughes
IcedTea-Web Jiri Vanek
VisualVM Harness (none)
IcedTea-Sound Andrew John Hughes

The currently supported releases are:

Release OpenJDK Relationship Default HotSpot Alternate HotSpot(s) Expires With
IcedTea 2.6.18 (hg) OpenJDK 7 u221b02 & IcedTea patches hs24.221-b02 + ARM32 & AArch64 ports N/A IcedTea 2.7.2
IcedTea 3.12.0 (hg) OpenJDK 8 u212b04 & IcedTea patches hs25.212-b04 + AArch64 port hs25.212-b04 + AArch64 port + Shenandoah (shenandoah)

hs25.212-b04 + AArch32 port (aarch32)

IcedTea 3.13.0

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

New releases are announced on the release maintainer's blog and on our mailing list.

Additional instructions are also available for Debian, Fedora, RHEL 5.x and Gentoo. Please beware that these may be outdated; updates are welcome.

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.

We maintain a CommitPolicy here on the wiki. Please follow this; it applies to all IcedTea projects. This wiki also provides details of our release process.

4 FAQs

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:

Personal tools