Java Development Kit for ARM Release Notes

Java Development Kit for ARM

Release Notes

Release 8 Update 6


July 2014

These release notes describe the new features, platform requirements, installation, known issues, and limitations for Java Development Kit for ARM Release 8u6 (JDK 8u6 for ARM).

This document contains the following topics:

1 New and Changed Features

JDK 8u6 for ARM includes the features and bug fixes of Java SE 8 Update 5. To review these features, see Java SE 8 Update 5 Release Notes.

In addition, JDK 8u6 for ARM contains the following enhancements specifically for supported ARM platforms.

1.1 Thumb-2 ISA Mode for ARM VFP Binaries

For ARM v7, and untested but should work on ARM v6 t2, Thumb-2 ISA mode supports Java Native Interface (JNI) for applications compiled in both ARM and Thumb-2.

1.2 Runtime Performance Improvements

There are several JRE performance improvements at startup. Specifically, the following enhancements have been implemented.

  • Client compiler (C1) inlining

    The C1 inlining policy has been expanded by using profile information to improve performance. This feature is a tech preview, and it is turned off by default.

    You can enable C1 profiled inlining by using the java launcher flag -XX:+C1ProfileInlining.

  • Class Data Sharing with custom classlists

    Class Data Sharing (CDS) is an existing JDK feature that enables improved JVM startup times and reduced memory consumption. With CDS, you can preload and dump a set of class files to a shared-archive file. This prepared representation of the class files can be shared across multiple JVM processes. With JDK for ARM, you can now generate your own classlist to a custom location. For more information about using java command-line options to create and preload a custom classlist, see Oracle Java SE Embedded Developer's Guide.

  • Tiered Compilation Mode

    Tiered compilation brings client startup speeds to the server VM by using the client compiler to generate compiled versions of methods that collect profiling information about themselves.

    To enable tiered compilation mode for ARM v7 devices, use the -XX:+TieredCompilation option with the java launcher command.

1.3 JavaFX Multitouch Input Support

This release supports touch events for multiple touch input points on the touch screen integrated into the Freescale i.MX6 Sabre device platform. There is touch support for up to 20 touch points, subject to the limits of the hardware and drivers used. Mouse events are synthesized from touch input. See the JavaFX Events tutorial for how to handle touch points.

Note that there is no support for multitouch gestures.

1.4 G1 Garbage Collection

G1 garbage collection is available as a technology preview in JDK for ARM hard float devices. Note that the functionality has not been tested.

The java launcher flag for G1 garbage collection is -XX:+UseG1GC.

2 Platforms and Requirements

See the JDK for ARM Downloads page to see which ARM devices are supported.

3 Installing JDK for ARM

Refer to the JDK 8u6 for ARM README for installation instructions.

4 Known Issues

This section describes known problems and issues in this release that are specific to JDK 8u6 for ARM. See also Java SE 8 Update 5 Release Notes for known issues, many of which also affect embedded platforms.

4.1 Java SE API Documentation for the javax.crypto Package

Because of a bug, the current Java SE API documentation for the javax.crypto package does not include compact profile information, but all classes and interfaces in the javax.crypto package are available with all compact profiles.

4.2 Raspberry Pi Power Supply

The minimum power supply rating to use on the Raspberry Pi is 800mA. However, unless a higher-rated power supply is used, some problems can occur when the CPU or GPU are under heavy load. For example, USB ports can lose power or the device can suddenly reboot. We recommend the use of a 2A power supply.

4.3 Raspberry Pi Input Events

If you run into problems with dropped input events, try reducing the USB bus speed. First, update the Raspberry Pi firmware:

$ sudo apt-get update
$ sudo apt-get install raspberrypi-bootloader --reinstall

Then, open /boot/cmdline.txt in an editor. On the same line as the other options add dwc_otg.speed=1. Save the file, run sudo sync, and reboot.

This option drops USB speeds from 480Mb/s to 12Mb/s, which resolves issues with a variety of USB devices on the Raspberry Pi.

4.4 JavaFX Generic Bugs

All editions of JavaFX, including the components provided with Oracle Java SE Embedded, exhibit the issues listed at this site:

4.5 AWT Graphics Bug

This bug applies to AWT graphics on certain configurations when rendering is performed through the xrender pipeline. There are some platform X11 bugs that can cause empty or partially empty windows running AWT (not Swing) applications.

As a workaround, xrender is disabled by default in Oracle Java SE Embedded. If you want to test your AWT application to see if it runs without an issue, you can force xrender on with the systems property -Dsun.java2d.xrender=true when you launch the application. For example:

$ java -cp AWTApp.jar -Dsun.java2d.xrender=true awtapp.AWTApp 

For more information see the following bug at:

5 Limitations

This section describes limitations of JDK for ARM.

5.1 Native Memory Tracking Support is Limited

The java command line option -XX:NativeMemoryTracking=detail is not supported for ARM targets (an error message is displayed). Instead, use the following option: -XX:NativeMemoryTracking=summary

5.2 JavaFX 3D Rendering is Only Experimental

There is experimental support for the JavaFX 3D API. This is disabled by default, but can be enabled with the following command-line flag when starting Java:


6 Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit or visit if you are hearing impaired.

Java Developmoent Kit for ARM Release Notes, Release 8 Update 6


Copyright © 2014 Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.