Contents

Java

This page is a draft only It is still under construction and content may change. Do not rely on the information on this page.

Best of Breed Free Software Java implementation

Fedora includes best of breed free software java implementations through active adoption of innovative Fedora and upstream technology integration. The implementations integrated into Fedora are based on OpenJDK and the IcedTea GNU/Linux distribution integration project or alternatives like the GNU Compiler for Java (GCJ) and the GNU Classpath core class libraries. All Fedora innovations are pushed upstream to get the widest possible integration of the technologies in general Java implementations.

The implementation of OpenJDK 6 included in Fedora 10 uses the HotSpot virtual machine runtime compiler on x86, x86_64 and sparc. On ppc it uses the zero interpreter (which is a bit slower). On all architectures an alternative implementation based on GCJ and GNU Classpath is included which includes a ahead of time compiler to produce native binaries.

Fedora binaries for selected architectures (currently only x86 and x86_64 based on OpenJDK) are tested against the Java Compatibility Kit (JCK) by Red Hat to guarantee 100% compatibility with the Java Specification (JDK 1.6 at this time).

Note on upgrading from Fedora 8 - OpenJDK Replaces IcedTea

Since Fedora 9 the packages called java-1.7.0-icedtea* in Fedora 8 have been renamed to java-1.6.0-openjdk*. The Fedora 8 IcedTea packages tracked the unstable OpenJDK 7 branch, whereas the java-1.6.0-openjdk* packages track the stable OpenJDK 6 branch. All the upstream IcedTea sources are included in the java-1.6.0-openjdk SRPM.

If you are upgrading from a system based on Fedora 8 that still has IcedTea installed, the package changeover does not happen automatically. The packages related to IcedTea based on OpenJDK 7 must first be erased, then the new OpenJDK 6 packages installed.

Handling Java Applets

Upstream OpenJDK does not provide a plugin. The Fedora OpenJDK packages include an adaptation of gcjwebplugin, that runs untrusted applets safely in a Web browser. The plugin is packaged as java-1.6.0-openjdk-plugin.

The gcjwebplugin adaptation has no support for the bytecode-to-JavaScript bridge (LiveConnect) . Applets that rely on this bridge will not work. Experimental LiveConnect support exists in the IcedTea repository, but is not ready for deployment in Fedora.

The gcjwebplugin adaptation does not support signed applets . Signed applets will run in untrusted mode. Experimental support for signed applets is present in the IcedTea repository, but it is not ready for deployment in Fedora.

The gcjwebplugin security policy may be too restrictive. To enable restricted applets, run the firefox -g command in a terminal window to see what is being restricted, and then grant the restricted permission in the /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/security/java.policy file.

Handling Web Start Applications

Upstream OpenJDK does not provide Web Start support. Experimental Web Start support via NetX is present in the IcedTea repository, but is not ready for deployment in Fedora.

Fedora and JPackage

Fedora includes many packages derived from the JPackage Project . Some of these packages are modified in Fedora to remove proprietary software dependencies, and to make use of GCJ's ahead-of-time compilation feature. Use the Fedora repositories to update these packages, or use the JPackage repository for packages not provided by Fedora. Refer to the JPackage website for more information about the project, and the software it provides.

Admonition("warning", "Mixing Packages from Fedora and JPackage", "Research package compatibility before you install software from both the Fedora and JPackage repositories on the same system. Incompatible packages may cause complex issues.")

An incompatibility between Fedora and the JPackage jpackage-utils, that prevented installing JPackage's jpackage-utils on Fedora, is resolved in this release.