Dear Wiki user, You have subscribed to a wiki page or wiki category on "Fedora Project Wiki" for change notification. The following page has been changed by ThomasFitzsimmons: http://fedoraproject.org/wiki/Docs/Beats/Java?action=diff&rev2=82&rev1=81 ------------------------------------------------------------------------------ {{{#!html - <h2>IcedTea and java-gcj-compat</h2>}}} + <h2>OpenJDK</h2>}}} - === IcedTea === + === OpenJDK 6 === - This release of Fedora includes the '''IcedTea''' environment. '''IcedTea''' is a build harness for Sun's OpenJDK code that replaces encumbered parts of OpenJDK with Free Software replacements. '''IcedTea''' provides a more complete, compatible environment than GCJ, including support for building and running bytecode up to the 1.6 level. Users of '''IcedTea''' should be aware of a few caveats: + This release of Fedora includes OpenJDK 6. - * There is no ppc or ppc64 support. Users of `ppc` and `ppc64` systems should continue to use GCJ. - * There is no support for the Java sound APIs. - * There are a few missing cryptographic algorithms. + Fedora will track Sun's stable OpenJDK 6 branch. + + === OpenJDK Replaces IcedTea === + + The OpenJDK 6 packages (java-1.6.0-openjdk*) replace their IcedTea counterparts (java-1.7.0-icedtea*). The Fedora 8 IcedTea package tracks the unstable OpenJDK 7 branch whereas java-1.6.0-openjdk tracks the stable OpenJDK 6 branch. The decision to have OpenJDK 6 replace IcedTea was made for several reasons: + + * Sun has replaced most of the encumbrances for which IcedTea was providing replacements. + * OpenJDK contributes ~99% of the code in the java-1.6.0-openjdk package. + * IcedTea's mandate is to merge as much as possible with OpenJDK, so the differences between IcedTea and OpenJDK should diminish over time. + * OpenJDK 6 is a stable branch, whereas OpenJDK 7 is unstable and not expected to ship a stable release until 2009. + * Sun has licensed the OpenJDK trademark for use in Fedora. + * Shipping both OpenJDK 6 and IcedTea would have been confusing and would have added size to the distribution. + + IcedTea continues to provide autotools support, a portable interpreter for ppc and ppc64 support, plugin support, Web Start support and patches to integrate OpenJDK into Fedora. The IcedTea sources are included in the java-1.6.0-openjdk SRPM. + + OpenJDK 6 is not Java compatible. Work is underway to certify it as such. === Handling Java Applets === - The Fedora IcedTea packages also include an adaptation of `gcjwebplugin` that runs untrusted applets safely in a web browser. The plugin is packaged as {{{java-1.7.0-icedtea-plugin}}}. + 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 [https://bugzilla.redhat.com/show_bug.cgi?id=304021 no support for the bytecode-to-JavaScript bridge]. Applets that rely on this bridge will not work. - * The `gcjwebplugin` adaptation has [https://bugzilla.redhat.com/show_bug.cgi?id=304031 no support for signed applets]. Signed applets will run in untrusted mode. + * The `gcjwebplugin` adaptation has [https://bugzilla.redhat.com/show_bug.cgi?id=304021 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 it is not ready for deployment in Fedora. + * The `gcjwebplugin` adaptation has [https://bugzilla.redhat.com/show_bug.cgi?id=304031 no support for 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 overly restrictive. To enable restricted applets, run {{{firefox -g}}} in a terminal window to see what is being restricted, then grant the restricted permission in {{{/usr/lib/jvm/java-1.7.0-icedtea-1.7.0.0/jre/lib/security/java.policy}}} + * The `gcjwebplugin` security policy may be overly restrictive. To enable restricted applets, run {{{firefox -g}}} in a terminal window to see what is being restricted, then grant the restricted permission in {{{/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/security/java.policy}}} - === java-gcj-compat === + === Handling Java Web Start Applications === - This release of Fedora includes `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. + Upstream OpenJDK does not provide Web Start support. Experimental Web Start support is present in the IcedTea repository but it is not ready for deployment in Fedora. - The [[GetVal(DocsDict,Jname)]] infrastructure has three key components: a '''GNU''' runtime (`libgcj`), the '''Eclipse''' 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 Java environments. + === Fedora and JPackage === - The Java software packages in this Fedora release use the `java-gcj-compat` environment. These packages include '''Open``Office.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. + Fedora includes many packages derived from the [http://jpackage.org 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 [http://jpackage.org the JPackage website] for more information on the project and the software it provides. - [[Admonition("important", "Include Location and Version Information in Bug Reports", "When making a bug report, be sure to include the output from these commands:")]] + [[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 JPackage jpackage-utils that prevented installing JPackage's jpackage-utils on Fedora is [https://bugzilla.redhat.com/show_bug.cgi?id=260161 fixed] in this release. - {{{ which java && java -version && which javac && javac -version - }}} - === 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 - }}} - - A simpler way to switch java alternatives is using the {{{system-switch-java}}} tool included in Fedora. - - === 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. - - [[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.")]] - - Refer to the latest release notes pertaining to Eclipse [http://fedoraproject.org/wiki/Docs/Beats/Devel/Tools/Eclipse here]. - - === 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. - -- Fedora-relnotes-content mailing list Fedora-relnotes-content@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-relnotes-content