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.

Contents

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

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.

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.

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.

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: