Release Notes
Java™ SE for Embedded 7 Update 2 Runtime Environment

Dec 8, 2011

This document summarizes the functionality and known issues of Java SE for Embedded 7 Update 2 (7u2). Java SE for Embedded 7 Update 2 is based on Java Platform Standard Edition 7 Update 2 (Java SE 7u2) and provides specific features and support for embedded systems.

To ensure that you have the most recent updates of the technical documents for Java SE for Embedded, check the latest versions on the Java SE for Embedded Product Documentation web site.

Platform Support

This release of Java SE for Embedded 7 Update 2 was tested on Linux for ARM, Power Architecture and x86 systems. The requirements of these systems are specified at Java SE for Embedded System Requirements. For ARM, testing was done on the v5, v6 and v7 architectures. Power Architecture systems based on e600 core and e500v2 core architectures were tested. Headless mode was tested on all systems; headful mode was tested on ARM v7.

Some of the information in this document describes support or issues concerning graphics, window managers, audio, and so forth, and therefore only applies to the headful release on ARMv7.

What's New in This Release

Power Architecture Support

Java SE for Embedded 7 Update 2 provides support for Power Architecture on Linux. For Power Architecture, the previous Java SE for Embedded release was based on Java SE 6u27.

Serviceability Improvements in Java SE for Embedded

Starting with Java SE for Embedded 7u2, the native library libattach.so is included with the Java SE for Embedded JRE. This addition enables the functionality of the following serviceability commands:

Command Functionality
jmap -dump:options PID dumps Java heap (in HPROF format)
jmap -histo PID prints a histogram (stats) of the heap, organized by Java class
jstack PID prints Java stack traces of Java threads
jstack -l PID like jstack PID, but prints additional information about locks

Executing these Commands on Java SE for Embedded

It is necessary to first import tools.jar from a JDK (any platform) into the Java SE for Embedded JRE installation since the jstack and jmap underlying functionality is provided in tools.jar of the JDK and not in the JRE. The JDK and JRE must have the same release version (for example, 7u2).

Once you have copied tools.jar from the JDK, you can access the above jmap and jstack functionality using the below commands. Note that these commands need to be executed locally on the embedded device running Java SE for Embedded. If the embedded device is headless, the local execution can be accomplished through a remote terminal connection to the device (using for example telnet or ssh).




    java -cp TOOLS_JAR_PATH/tools.jar sun.tools.jmap.JMap -dump:options PID
    java -cp TOOLS_JAR_PATH/tools.jar sun.tools.jmap.JMap -histo PID
java -cp TOOLS_JAR_PATH/tools.jar sun.tools.jstack.JStack PID
java -cp TOOLS_JAR_PATH/tools.jar sun.tools.jstack.JStack -l PID

where:

  • TOOLS_JAR_PATH is the absolute path to tools.jar
  • options is a list of heap dump options as documented for jmap
  • PID is the process ID of the targeted Java SE for Embedded process

The enhanced serviceability functionality provided by adding libattach.so to the Java SE for Embedded JRE is limited to the four commands listed previously. For more information on jmap and jstack, including usage and output, see JDK Tools and Utilities.

Server Compiler Technology

The Server Compiler is Java SE's highly optimizing bytecode compiler. Until this release, Java SE for Embedded on ARM only supported the Hotspot Client compiler: the lightly optimizing and less resource hungry bytecode compiler. Now, Java SE for Embedded 7 Update 2 brings Server Compiler support on ARM.

The Server Compiler on ARM technology is restricted to ARM version 7 processors with hardfloat (vfp) support.

Known Limitations

ARM and PPC ReservedCodeCacheSize Maximum Value is 32 Megabytes

In Java SE for Embedded 7 Update 2, the ARM and Power Architecture ReservedCodeCacheSize maximum value is 32 megabytes. The reason for ReservedCodeCacheSize limitation is an architecture restriction on branch offset. The limitation can be overcome by using a non-optimized sequence of instructions. However, this approach introduces a significant performance drop. Currently, JavaVM supports a maximum of 32 megabytes of ReservedCodeCacheSize for ARM and Power Architecture.

OpenGL Limitation

The headful version of Java SE for Embedded 7 Update 2 on Linux ARM does not support the OpenGL acceleration pipeline for Java2D.

Bug Fixes

Bug Database - In most cases, the bug ID number for each bug fixed is a link to the detailed bug report on the Bug Database web site. Bug Database enables you to file your own bug reports, add comments to existing bug reports, and vote for the bugs you consider most important.

Java SE for Embedded 7 Update 2 is based on Java SE 7 Update 2. Refer to Java SE 7 Update 2 Release Notes for additional information on relevant bug fixes.

Comparison Between Java SE and Java SE for Embedded

Java SE for Embedded derives from Java SE, but provides specific features and support for the embedded market on a limited set of supported platforms. The embedded-specific features and support include additional platforms, small footprint JREs (optional files removed), headless configurations, and memory optimizations.

All Java SE for Embedded offerings are Java SE compliant.

On most platforms, Java SE for Embedded provides only the 32-bit "client" version of the Java virtual machine; the 64-bit version is not supported, and using the -server option has no effect (unless as specified in the Server Compiler Technology section).

For more information on functionality that is generally common to both Standard Java SE 7 and Java SE for Embedded 7, including the Java language, HotSpot VM, Libraries and Tools, see the Java SE Documentation.

See also the Java SE 7 Release Notes for release information on the Java SE 7 platform.

For more information on functionality that is specific to Java SE for Embedded 7, see SE Functionality Specific for Embedded.

How to Enable Java Plug-In

The headful version of Java SE for Embedded 7 Update 2 on ARMv7 supports Java™ Plug-in technology. (See Applet Developer's Guide for more infomration.) We have verified that Java SE for Embedded 7 Update 2 works with the Firefox 3.6 web browser. Mozilla's Gecko rendering engine version 1.9.0 FCS or later is required. Non-Mozilla web browsers, including the WebKit rendering engine (used in some non-Mozilla web browsers), are not supported at the time of this writing.

A symbolic link needs to be created in order to get the Java Plug-in to work. This link should point from the browser's plugins directory to the Java Plug-in shared library included in the JRE, and it can be created with the following command from a shell:

ln -s <JAVA_HOME>/lib/arm/libnpjp2.so <MOZILLA_DIR>/plugins/libnpjp2.so

In the above command, <JAVA_HOME> represents the directory where you installed the headful Java SE for Embedded 7 Update 2 bundle (for example, /usr/java/ejre1.7.0_2), and <MOZILLA_DIR> represents the directory where you installed your web browser (for example, /usr/lib/mozilla).