initCommon(); $template->displayHeader(); ?>

15. Java and java-gcj-compat

[Tip]Latest Release Notes on the Web

These release notes may be updated. Visit http://docs.fedoraproject.org/release-notes/ to view the latest release notes for Fedora.

This release of Fedora includes a free and open source Java environment called java-gcj-compat. The java-gcj-compat collection includes a tool suite and execution environment that is capable of building and running many useful programs that are written in the Java programming language.

[Note]Fedora Does Not Include Java

Java is a trademark of Sun Microsystems. java-gcj-compat is an entirely free software stack that is not Java, but may run Java software.

The java-gcj infrastructure has three key components: a GNU Java runtime (libgcj), the Eclipse Java compiler (ecj), and a set of wrappers and links (java-gcj-compat) that present the runtime and compiler to the user in a manner similar to other Java environments.

The Java software packages in this Fedora release use the java-gcj-compat environment. These packages include OpenOffice.org Base, Eclipse, and Apache Tomcat. Refer to the Java FAQ at http://www.fedoraproject.org/wiki/JavaFAQ for more information on the java-gcj-compat free Java environment in Fedora.

[Important]Include Location and Version Information in Bug Reports

When making a bug report, be sure to include the output from these commands:

which java && java -version && which javac && javac -version 

15.1. Handling Java and Java-like Packages

In addition to the java-gcj-compat free software stack, Fedora lets you install multiple Java implementations and switch between them using the alternatives command line tool. However, every Java system you install must be packaged using the JPackage Project packaging guidelines to take advantage of alternatives. Once these packages are installed properly, the root user may switch between java and javac implementations using the alternatives command:

alternatives --config java  
alternatives --config javac

15.2. Handling Java Applets

This release of Fedora includes a preview release of gcjwebplugin, a Firefox plugin for Java applets. gcjwebplugin is not enabled by default because although the security implementation in GNU Classpath is being actively developed, it is not mature enough to run untrusted applets safely. That said, the AWT and Swing implementations in GNU Classpath are now sufficiently mature that they can run many applets deployed on the web. Adventurous users who want to try gcjwebplugin can read /usr/share/doc/libgcj-4.1.2/README.libgcjwebplugin.so, as installed by the libgcj package. The README explains how to enable the plugin and the risks associated with doing so.

15.3. Fedora and the JPackage Java Packages

Fedora includes many packages derived from the JPackage Project, which provides a Java software repository. 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 at http://jpackage.org for more information on the project and the software it provides.

[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.

Refer to the latest release notes pertaining to Eclipse at http://fedoraproject.org/wiki/Docs/Beats/Devel/Tools/Eclipse.

15.4. Maven (v2)

This release of Fedora includes maven2, a Java project management and project comprehension tool. Maven can be invoked by the mvn and mvn-jpp commands. The former makes Maven behave just like upstream Maven, while the latter calls mvn with additional properties that make off-line building easier.

The maven2 package in Fedora is modified to work in a fully off-line mode. With no additional properties defined (the mvn command), maven2 works exactly like upstream Maven. Users may define additional properties to facilitate off-line builds, or call mvn-jpp, a wrapper that defines the most commonly used properties for off-line building. The properties and their usage details are described in the /usr/share/doc/maven2-2.0.4/maven2-jpp-readme.html file, which comes from the maven2-manual package.

displayFooter('$Date: 2007/05/31 03:35:07 $'); ?>