You are currently browsing the tag archive for the ‘Java ME SDK’ tag.

K64 1

Just released:

  • Oracle Java ME Embedded 8.2: Now even smaller!
  • Oracle Java ME SDK 8.2: Now with Linux tooling support!

Check out the details in the blog entry of my college Alex Belokrylov.

Stay tuned for more Java ME Embedded-related announcements in the coming weeks.


— Terrence

Qualcomm ioe

It almost got lost in the surge of announcements at JavaOne: Not only did we make available Java ME Embedded 8 Early Access, but we also released an update to the existing Java ME Embedded 3.x product

Java ME Embedded 3.4 is based on version 3.3 but now also supports the Qualcomm IoE (“Internet of Everything”) developer platform:

  • QSC6270T processor with 64 MB DDR RAM and 128 MB NAND Flash
  • Tri-band UMTS/HSDPA + quad-band GSM, SIM slot
  • 2.4 GHz WiFi a/b/g/n
  • GPS
  • Supported I/O: SPI, I2C, GPIO, ADC, UART, SD card, on-board accelerometer, light + temp sensor

Alongside, we’ve also updated the Java ME SDK to version 3.4 to add comfortable application development and debugging on the Qualcomm IoE platform via a USB connection to the PC.

With this release, Java ME Embedded now supports a key part of the Qualcomm ecosystem, opening up new opportunities for embedded Java in a wide range of use cases.

Java ME Embedded 3.4 and Java ME SDK 3.4 can be downloaded for free from OTN for development and evaluation purposes.


— Terrence


I2c emulOne of the core requirements for embedded Java applications is the ability to access I/O devices, such as sensors, switches, converters, actuators, LEDs, and so on to enable the embedded system to interact with the world around it.

Java ME Embedded includes the Device Access API (DAAPI), which is a comprehensive API that provides access to a range of common I/O devices directly from your Java application in an easy and platform-independent manner. No native code, recompilation, or other “traditional embedded trickery” required.

That works great if you have your target platform already available and up-and-running. But what if you want to start software development before your target platform hardware is available? Or you want to develop most of the code on a Desktop PC for convenience and speed purposes? The Java ME SDK has you covered.

The Java ME SDK offers a set of tools as well as plugins for NetBeans and Eclipse which allow you to develop Java ME Embedded applications efficiently and leveraging your existing Java expertise. Another great feature is that it includes a full emulation runtime which emulates a Java ME Embedded target platform on the PC. Furthermore, the Java ME SDK also includes a tool called the “Custom Device Editor”, which allows you to customize the emulation runtime to your needs (for example, by adding the specific I/O devices of your actual target hardware) and even allows you to implement simulated device behavior (in Java, of course).

To get started with custom I/O devices in the Java ME SDK, check out an excellent blog post Tom McGinn from the Oracle Education Team, explaining how to add and simulate an I2C temperature sensor.


— Terrence

Newsflash 757208

Obfuscation is a really helpful mechanism to reduce the size of your Java ME Embedded application code to a minimum.

When developing Java embedded applications using the Java ME SDK  3.3 with NetBeans you would normally be able to easily install the ProGuard obfuscator via the NetBeans ProGuard plugin and then set it to automatically obfuscate every project build.

However, for NetBeans 7.3 a licensing incompatibly prevents the ProGuard plugin to be available directly on the NetBeans 7.3 update center. This issue has been fixed for the upcoming NetBeans 7.4.

If you want to use ProGuard with NetBeans 7.3 there is an easy workaround described on the NetBeans bug tracker: Scroll down to the end of the thread to see:


For now it is possible to use following workaround for proguard:

1. Download proguard.jar from
2. Insert following line in {YOUR_PROJECT_DIR}/nbproject/private/ OR {NB_USERDIR}/ (no need to insert in both):


(e.g. obfuscator.classpath=C:\\JavaME\\Proguard\\proguard.jar)


Hope this helps. Cheers,

— Terrence

Jai 3 3 video

Update 7/23/13: A good article/interview is on eWeek: “Oracle Aims Java ME Embedded at the Internet of Things”

On the heels of the recently refreshed Java ME Embedded 3.3 Early Access (EA) bits, Oracle is announcing today:

  • Oracle Java ME Embedded 3.3 GA (General Availability)
  • Oracle Java ME SDK 3.3 GA
  • The Oracle Java Platform Integrator Program

Here are the details:

Oracle Java ME Embedded 3.3

Oracle Java ME Embedded is an optimized, feature-rich Java runtime for resource-constrained devices, covering a wide range of platforms from small micro-controller devices up to mid-range embedded systems, including “Internet of Things” (IoT) and “Machine-to-Machine (M2M) devices. 

The 3.3 release comes with a range of new features and enhancements, such as additional peripheral support, developer productivity features (network monitor, memory status monitor), API enhancements, and other improvements. Ready-to-run binaries are available through Oracle Technology Network (OTN) for the following platforms:

Further, the Java ME SDK features an integrated Java ME Embedded emulation environment, which enabled developers to develop and test Java ME applications directly on PCs without the need for a physical hardware platform.

Oracle Java ME SDK 3.3

Along with the update of Oracle Java ME Embedded, the Oracle Java ME SDK toolchain has been updated to support the new Java ME Embedded features and platforms as well as improved device emulation, integrated memory and network monitor, usability enhancements, full Windows 7 support, and more. The NetBeans and Eclipse plugins have been updated as well.

Oracle Java Platform Integrator Program

The Oracle Java Platform Integrator Program enables companies developing embedded products on devices to leverage the technologies Oracle is providing across their choice of hardware and operating systems, allowing them to increase their differentiation and value-add,  improve application and service portability across a consistent platform, and reduce engineering efforts and time to market for their solutions through the pre-integrated and optimized Java Embedded stack.

Why is this important?

With this announcement, Oracle continues its push into the embedded space, with an enhanced and robust Java ME Embedded runtime, increased platform coverage, improved toolchain, and partner program that address a wide range of embedded use cases and opportunities in the IoT and M2M spaces.

Ok – Where can I find out more?

  • See the press release and watch the new video “Oracle Grows Java Capabilities in the Internet of Things”
  • Review the supporting resources (bottom of the press release page), including webcasts, “Getting Started” videos, and more
  • Check out the updated product home page, with Data Sheets, FAQs, and White Papers
  • Refer to a number of posts on my blog for more information (here, here, here, and here)

Exciting times. Stay tuned for more to come.


— Terrence

* Note: While the MCBSTM32F200 is the officially supported board, the release also works on the MCBSTM32F400 (which is the Cortex-M4 version)

Newsflash 757208

What’s New?

We’ve gotten excellent feedback on these releases and have found and fixed a couple of bugs and glitches and made usability enhancements. In keeping with the rapid evolution of the technology, we are today making available a set of refreshed bits:

  1. Oracle Java ME Embedded 3.3.1 EA for ARM Cortex-M3/M4
  2. Updated Oracle Java ME Embedded 3.3 EA for Raspberry Pi
  3. Updated Oracle Java ME SDK 3.3 EA and updated plugins for NetBeans and Eclipse

We have also expanded the documentation that comes with these releases as well as updated the embedded sample code that is available with the Java ME SDK 3.3 EA.

Developer should start using these updated releases right away to benefit from the improvements.

Important Notes For Installation:

  • You should update all versions together. The integration between the runtimes (1 and 2) and the tools (3) will work best if all are updated at the same time. So please uninstall previous versions of Java ME SDK 3.3 EA (via Windows “remove software”) and the NetBeans and Eclipse plugins (via plugin management) and then install the updated versions.
  • When installing the updated NetBeans plugins, you should use the manual installation method as described in the chapter 2-4 of the “Getting Started Guide for the Windows Platform”. The reason is that the NetBeans update center still contains the plugin versions of Java ME SDK 3.2 GA release (not 3.3 EA).

Getting Started:

Be sure to check out the improved and expanded “Getting Started Guides” and “Release Notes” for the platform you plan to use. Refer to the OTN Java Embedded Documentation Tab and expand on the section “Oracle Java ME Embedded 3.3 Release” (see screen shot).

3 3docs

It’s best to start with the Windows (via Java ME SDK) “Getting Started Guide for the Windows Platform”, which explains how to install the Java ME SDK and configure NetBeans and Eclipse.

To access the refreshed bits for the Oracle Java ME Embedded runtimes and the Java ME SDK, please go to the download page (be sure to refer to the section for the 3.3 releases).

Where to Learn More and Get Help:


— Terrence 

Angela keil

Following up on yesterday’s release, Oracle evangelist Angela Caicedo has put together a great blog posting with all steps and code you need to develop and run your first Java application on an ARM Cortex-M3 developer board.

Alternatively, it you’d rather just sit back and watch, you can check out her webcast “Getting started with Java ME Embedded on KEIL” (part 1part 2).

Or, if you have a Raspberry Pi lying around, you could use that.

In any case, it has never been easier to get started with embedded Java applications!


— Terrence

This is bigA few weeks ago, Oracle made available an updated release of Java ME Embedded, version 3.3, as an Early Access (EA) for Linux on Raspberry Pi (see blog entry).

Today, we are following up with the release on ARM Cortex-M3 for the ARM RTX RTOS on the KEIL MCBSTM32F200 developer board (*see note on Cortex-M4 below).

Why is this important?

With this release, Oracle now provides a Cortex-M3/M4 reference binary of the feature-rich, standards-based Java ME Embedded runtime, scaling from mid-range embedded systems such as Linux-based platforms all the way down to micro controller-type devices with limited memory and small RTOS or minimal kernels. System requirements:

  • Minimal Java ME Embedded configuration: 32-bit MCU, 130 KB RAM, 350 KB Flash/ROM
  • Full Java ME Embedded configuration: 700 KB RAM, 2000 KB Flash/ROM

Yes, that is Kilobytes, not Megabytes (!)

So take your existing Java skills, use familiar tools like NetBeans and Eclipse, and develop highly-functional, robust embedded applications for a wide range of embedded use cases and devices in a snap.

For example, you can begin developing your code on a powerful and flexible desktop-class system like Raspberry Pi. Later, you take the unmodified application binary and simply deploy it directly to the resource-constrained target devices running Java ME Embedded.

Sounds easy? It is: No cross-compilation, no complexities due to platform dependencies, no dealing different sets of architectures, tools, compilers, libraries, and versions, and significantly reduced integration and testing effort … in fact, many typical embedded software development pain points just evaporate (embedded developers: if you are crying tears of joy now, I understand – I’ve been there myself 😉

And on top of the rich set of functionality already provided by Java ME Embedded 3.2, version 3.3 adds a number of new features, such as an expanded and more flexible access to peripherals (such as ADC, DAC, Pulse Counter, and watchdog)improved logging functionality, tooling enhancements, additional new sample code, and more. Still in the same, low footprint.

Ok, great! What next?

  • Watch the brand-new webcast “Getting started with Java ME Embedded on KEIL” (part 1, part 2)
  • Order a KEIL MCBSTM32F200 from your favorite distributor (such as Mouser, Element14, or a number of others)
  • Review the Java ME Embedded 3.3 documentation, included “Getting Started Guides” and “Release Notes”
  • Download the Java ME Embedded 3.3 binary for KEIL MCBSTM32F200 from Oracle Technology Network (OTN)
  • Download and install the Java ME SDK 3.3 EA and/or the NetBeans and Eclipse plug-ins
  • Check out Angela Caicedo’s blog post “Getting started with Java ME Embedded on KEIL”

To learn more:

Getting in touch:

Stay tuned for more to come.


— Terrence

* Note: While the MCBSTM32F200 is the officially supported board, the release also works on the MCBSTM32F400 (which is the Cortex-M4 version)

Asha.jpg Nokia has announced a series of new S40 phones called “Asha” – mass-market devices with smart-phone features: Good-sized touch screens, 1 GHz processors, WiFi connectivity, social networking integration, and more. Prices starting around €60 retail.

In case you don’t know, the S40 series is built on Java ME and has a huge deployed base in many parts of the world where price/performance is critical. Along with the new phones, Nokia is also making available the new Nokia SDK 2.0 for Java (beta), which enables developers to build rich Java applications with multi-touch, sensor support, an improved Maps API, and the Lightweight UI Toolkit (LWUIT) (more API & tools details). Furthermore, there is a host of developer information, the remote device access service, and even a porting guide to help you port your Android app to the new Asha platform.

Last, but not least: More and better options to monetize your applications. Nokia has enabled in-app advertising and in-app purchasing, and improved the way applications can be discovered by customers. Nokia has seen downloads from the Nokia app store rise by 63%, now totaling billions.

From what I’m hearing, the revenue opportunities on S40 for developers are often way better than what is typical for other smart-phone platforms (where competition is huge and consumers are fickle).


— Terrence

javame-sdk-profiler.pngAdmittedly, I am a bit late with this announcement. The Java ME SDK 3.0.5 was, in fact, released 3 weeks ago – but I haven’t had the time to blog about it.

Despite its minor number increment (from 3.0 to 3.0.5) there are substantial changes and improvements in the new Java ME SDK version, including:

  • Netbeans integration: All Java ME tools are now implemented as NetBeans plugins
  • LWUIT 1.5 support, including the new GUI Builder
  • Ability to use the NetBeans CPU profiling for Java ME applications and even VM classes
  • Network Monitor supports monitoring connections such as SIP, Bluetooth, and OBEX, and more
  • New tracing functionality for monitor events, method invocation, garbage collection, and more
  • Support for multiple Device Managers
  • WURFL device database updated with more than 1000 new devices
  • New or updated JSR support for a number of APIs

Definitely worth checking out. Find out more and download directly at the Java ME SDK OTN page.


— Terrence

Enter your email address to subscribe to this blog

Join 179 other followers

Twitter Updates

March 2020

Blog Stats

  • 279,809 hits