1 General

1.1 What is IcedTea?

IcedTea's aim is to provide OpenJDK in a form suitable for easy configuration, compilation and distribution with the primary goal of allowing inclusion in GNU/Linux distributions. It intends to provide OpenJDK in a form on par with the proprietary JDK releases by Oracle and others, and is easier to contribute to than OpenJDK (no copyright assignment required).

IcedTea provides a build harness for OpenJDK. It is not a fork of OpenJDK, and doesn't contain the OpenJDK source code. Instead, it provides a simplified build system which automatically downloads and builds the OpenJDK source releases available from Oracle. It also has a number of local patches, many of which will eventually find their way upstream into OpenJDK, and additional features such as a PulseAudio sound provider. To reflect the various upstream OpenJDK release streams, there are several variants of IcedTea named IcedTean where n is the Java specification the release implements e.g. IcedTea6 implements Java 6.

One central development provided by the IcedTea project is a Free Software plugin and Web Start implementation. Sun/Oracle never released their implementation as part of OpenJDK, so IcedTea is the only source for a Free implementation. As of the 1.10 series of IcedTea6 releases and the 1.14 IcedTea7 release, plugin and Web Start development has shifted to the IcedTea sub-project, IcedTea-Web to allow for more rapid development and deployment.

The original motivation for IcedTea was to provide a way of building OpenJDK without the binary plugs present in early versions:

"Not all of the source code that makes up the JDK is available under an open-source license. In order to build an OpenJDK binary from source code, you must first download and install one or more of the following files from which the build process will copy over 'binary plugs' for these encumbered components." (from http://openjdk.java.net/)

To do so, it provided stubs and GNU Classpath replacements for the encumbered binary plugs, allowing OpenJDK to be bootstrapped against GCJ. These plugs are now a thing of the past, but IcedTea still tries to make more provision for bootstrapping than upstream.

1.2 Who created IcedTea?

IcedTea was originally created by the Open Source Java team at Red Hat, specifically Lillian Angel, Tania Bento, Gary Benson, Thomas Fitzsimmons, Kyle Galloway, Andrew Haley, and Francis Kung. Jim Pick provides the Xen instance and bandwidth for icedtea.classpath.org, and Mark Wielaard also helped with administrative setup of icedtea.classpath.org and build testing.

1.3 What license is IcedTea released under?

IcedTea is released under the GPL2 + Classpath exception, which is the same license as both GNU Classpath and OpenJDK.

2 Building, Developing, and Packaging

2.1 What packages are required?

2.2 What distributions/platforms does IcedTea build on?

IcedTea is mainly developed on GNU/Linux systems but we are open to patches which extend support to other platforms. In particular, we would like to see IcedTea-Web support as many platforms as possible and there is already work being done to make IcedTea-Web build on *BSD.

This wiki includes further details on compiling on specific platforms:

2.5 Is there an IcedTea bug tracker?

2.6 Are binary packages available?

3 Functionality and Testing

3.1 What does and doesn't work in IcedTea?

Everything should work out of the box now. Red Hat has managed to pass the TCK on their Fedora and RHEL binaries created using IcedTea.

If you find anything that does work with any other JDK6 implementation, but that fails to work with IcedTea, we would like to know about it. Please file a bug report (http://icedtea.classpath.org/bugzilla).

3.2 What is the status of encumbered fonts, graphics and crypto code ?

Works out of the box. All this code has been replaced with Free versions upstream in OpenJDK.

3.3 What is the status of sound?

Works out of the box. javax.sound (both sampled and midi). Sound is based on alsa (currently opens alsa hardware devices - which isn't ideal when using several sound using applications at the same time) and Gervill, a software midi synthesizer. IcedTea locally provides a PulseAudio provider.

3.4 What is the status of JavaScript?

Works out of the box for javax.script javascript. IcedTea will use Rhino, a JavaScript in Java implementation, when it is installed on the system.

3.5 What is the status of jmx snmp support?

SNMP support for jmx is currently not included. This is a very small part of the code, so people with some jmx/snmp background are very welcome to help fix this. Also any pointers to applications depending on this support would be appreciated. Please contact the mailing list.

4 Known problems

4.1 Java applications and Awesome window manager

In fact, this is not a real problem in IcedTea or OpenJDK, but a if you are unable to properly resize windows/frames of Java GUI applications, please look at the page
http://awesome.naquadah.org/wiki/Problems_with_Java which contains simple solution of this issue.