Oracle® Java ME Embedded Release Notes for the Reference Platform (Freescale FRDM-K64F)
Release 8.1 Developer Preview


Beta Draft: 2014-11-14

Oracle® Java ME Embedded

Release Notes for the Reference Platform (Freescale FRDM-K64F)

Release 8.1 Developer Preview


November 2014

This document provides release information for Oracle Java ME Embedded Release 8.1 Developer Preview for the Reference Platform (Freescale FRDM-K64F).

It contains the following sections:


The Oracle Java ME Embedded software is a ready-to-run software image for use with the Freescale FRDM-K64F board.

The Oracle Java ME Embedded software is an optimized platform stack for small embedded devices, which includes the following:

  • Connected Limited Device Configuration (CLDC) HotSpot Implementation (Java Virtual Machine)

  • Java ME Embedded Profile (MEEP)

What's Supported in This Release

The following hardware is supported in Oracle Java ME Embedded Release 8.1 for the Reference Platform (Freescale FRDM-K64F):

  • Target board: Freescale FRDM-K64F with on-chip memory only: 256 KB RAM, 1 MB Flash.

The following features are included in the Oracle Java ME Embedded software:

  • Operating system/native platform: mbed

  • CLDC 8 with SVM support only

  • MEEP 8 - minimal profile set

  • Device I/O API version 1.0:

    • GPIO

    • UART

    • I2C

    • DAC/ADC

    • Onboard LEDs

    • Accelerometer

    • Magnetometer

  • Command-line interface

  • Developer agent

  • Output/logging through USB/serial

  • Flash file system on an SD card

This release also offers support for the following optional packages:

  • System Configuration API

  • Generic Connection Framework package with the following supported network protocols:


    • Socket, SecureSocket

    • TLS 1.0

Access points functionality is not implemented in the current release.

Because the FRDM-K64F board has 3.3v logic while many Arduino shields require 5v logic, the FRDM-K64F board may not be compatible with some Arduino 5v shields from an electrical perspective.

Usage Notes

The Oracle Java ME Embedded Release 8.1 software consists of binary files and a directory structure that needs to be downloaded to a Freescale FRDM-K64F board.

Oracle Java ME Embedded Getting Started Guide for Freescale FRDM-K64F describes how to download the binary file to the board, how to connect to the board from the development host computer, and how to install and run IMlets on the board.

Observe the following important notes before running the Oracle Java ME Embedded software on the board:

  • The CPU and Memory Profiler are not supported in this release.

  • The Java debugger is not supported in this release.

  • The Network monitor is not supported in this release.

  • The appropriate SSL server certificates should be installed into the device to enable SSL and HTTPS connections.

Installation and Runtime Security Guidelines

The Oracle Java ME Embedded Developer Preview 8.1 software installation requires an execution model that ensures certain networked resources available. These required resources might include, but are not limited to, a variety of communication capabilities between the product's installed components.

It is important to note that the product's installation and runtime system is fundamentally a developer system that is not specifically designed to guard against malicious attacks from outside intruders. Given this, the product's architecture can present an insecure operating environment to the installation file system and its runtime environment, during execution. For this reason, it is critically important to observe the precautions outlined in the following security guidelines when installing and running the software.


The security-related functionality of a final developed application for release into the field is supported by the available components of the Oracle Java ME Embedded software stack incorporated by the developer into the application. The security precautions required by applications in the field are beyond the scope of these recommendations, but must be observed by the application developer.

To maintain optimum network security, the software package can be installed and run in a closed network operating environment; the software system is not connected directly to the Internet or to a company intranet environment that could introduce unwanted exposure to malicious intrusion. This is the ideal secure operating environment whenever the application under development does not require an Internet connection.

An example of a requirement for an Internet connection is when the system must communicate with a wireless network over the Internet to fully execute the application under development. Whether or not an Internet connection is required depends on the particular Java ME application running in the development environment. For example, some Java ME applications can use an HTTP connection. If the environment is open to network access, you must observe the following precautions to protect valuable resources from malicious intrusion:

  • Locate the development environment behind a secure firewall that strictly limits unauthorized network access to its file system and services. Limit access privileges to those that are required for development while allowing all the bidirectional local network communications that are necessary for the application's functionality. The firewall configuration must support these requirements to run the software while also addressing them from a security standpoint.

  • Follow the principle of least privilege by assigning the minimum set of system access permissions required for installation and execution of the software.

  • Do not store any sensitive information on the same file system that hosts the installation.

  • To maintain the maximum level of security, ensure that the operating system patches are up-to-date on host machines in the development environment.

Security Certificate Precautions

The Oracle Java ME Embedded software distribution bundle contains security certificates that are needed for testing during development of products for final release to customers. Some of these certificates are self-signed security certificates generated by Oracle that are mapped to privileged security domains. IMlets or MIDlets signed by these certificates get high privileges to access restricted APIs; these certificates present a security vulnerability if they are released to end users on a customer's device. You must remove these certificates after final testing of the product is completed, when the product is being prepared for release to end users. You do not need to remove certificates issued by universally recognized certificate authorities (CAs), because these certificates are used only for signature verification, and they do not present a vulnerability.

Developer Agent Precautions

The CLI is incorporated in the Developer Agent, which communicates with a device through an unsecured protocol. The Developer Agent is a Java SE application that can be reverse engineered to tamper with or to get information about the communication protocol, which might be used by an untrusted entity to manipulate the device. If you decide to implement the Developer Agent in a product deployment, it is your responsibility to incorporate adequate security measures around the Developer Agent communication channel. This channel uses TCP port 2201 on the K64F board for the communication.

Known Bugs

On some versions of Freescale FRDM-K64F boards I2C lines are swapped while on others not. For more details, see

For generic bugs in this release of the Oracle Java ME SDK that might affect the Freescale FRDM-K64F platform, see Oracle Java ME Software Development Kit Release Notes.

The following are known bugs in this release of the Oracle Java ME Embedded software:

  • The CLDC api/java_lang/System/index.html#CurrentTimeMillis fails in 20% cases due to a TCK issue. An appropriate challenge is filed against TCK.

  • Some CLDC and TCK tests fail due to OutOfMemoryException. Ensure that you run one test per bundle. Otherwise, wait until a new TCK bundle, suitable for resource restricted platforms, gets released.

  • The K64F board sometimes hangs during TCK tests execution. To continue working, reset the board.

  • The CLDC TCK test io/CommConnection fail due to PortInUseException.

  • Device access: an NPE is thrown instead of the IllegalStateException when trying to start an SPI transaction again.

  • Device access: an expected IllegalStateException was not thrown when trying to terminate an SPI transaction.

  • The CLDC TCK test io/SecureConnection/index.html#Other16 fails due to IllegalArgumentException.

  • An NPE is thrown when running two IMlets concurrently.

  • CLI: the cd . command produces an incorrect output.

  • CLI: the mkdir command does not work with relative directory names.

  • CLI: the ls command does not work.

  • CLI: the get command produces an incorrect output in the case when it cannot write to a file: <<get,FAIL,Illegal char <>> instead of <<get,FAIL,unable to write into file ...>>.

  • An I2C chip does not support write/read series in a single message. The following code causes an IOException:

    cm.appendWrite(i2c, send).appendRead(i2c, recv).appendWrite(i2c, send.  slice()).appendRead(i2c, recv.slice());
  • DIO VTS tests return wrong sampling interval for all ADC channels because Java ME Embedded runtime defines an upper bound for sampling intervals, which contradicts the Device I/O specification.

  • A stub file for device I/O with a subset of classes supported by the K64F board is not available in the current release.

  • The K64F board hands when creating many threads.

  • The Device Connections Manager does not connect to the board until a manual reset of the device.

  • The K64F board has no ROM to hold both crypto and VM Java Debugger.

  • The CLDC api/java_lang/Thread/index.html#Sleep1 fails. The code sleep(316,3162) actually resulted in 101000000 nsec hibernation.

  • The MEEP TCK tests midp_overview/Service/index.html#Service000* fail. Unexpected Throwable (in Service000*): java.util.ServiceConfigurationError due to a TCK issue. An appropriate challenge is filed against TCK.

Unstable Tooling Connection Between the Host Computer and the K64F Board

Due to unstable tooling connection between the host computer (Java ME SDK or NetBeans) and the K64F board you can experience the following symptoms.

  • The Java ME SDK UI shows an application as Started or Running although the application has already stopped on the K64F board.

  • Failure to start, stop, or remove applications on the K64F board using the Java ME SDK UI or NetBeans.

  • The Java ME SDK UI becomes unresponsive.

  • The Device Connections Manager shows the K64F board as Connected or Connecting even though the board cannot be accessed.

  • The Device Connections Manager becomes unresponsive when trying to add or remove a K64F board.

To resolve the mentioned issues, perform the following steps.

  1. Remove the K64F board from the Device Connections Manager.

  2. If the Device Connections Manager hangs during the removal of the board, terminate the Device Connections Manager using the Windows Task Manager.

  3. Unplug and reconnect the K64F board.

  4. Start the Device Connections Manager and add the K64F board again.

  5. Press the Reset button on the K64F board and wait until the connection status is Connected.

  6. Run the application again using the Java ME SDK UI or NetBeans.

  7. If the application installation fails, remove the previous installation manually using the Java ME SDK UI.

  8. Run the application using the Java ME SDK UI or NetBeans.

  9. If the issue persists, re-format the SD card and copy the contents of the sd_card directory on the SD card again.

Product Documentation

The following documentation is included with this release of the Oracle Java ME Embedded software. See

Application Title Format
All (this document) Release Notes


Demonstrates how to install and run the Oracle Java ME Embedded software on the Freescale FRDM-K64F platform. Getting Started Guide for the Reference Platform (Freescale FRDM-K64F) PDF


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.

Oracle Java ME Embedded Release Notes for the Reference Platform (Freescale FRDM-K64F), Release 8.1 Developer Preview


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 END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

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.

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.