Skip to main content

Goodbye WTK, hello Java ME SDK!

Posted by terrencebarr on October 13, 2008 at 9:49 PM PDT


For years the Sun Java Wireless Toolkit for CLDC (WTK) has been the reference tool for developing mobile applications and emulating mobile platforms on the desktop. Among it's strengths was that it was compact, easy-to-use, came with a number of built-in useful tools such as memory monitoring and profiling, and most importantly, it featured a complete and up-to-date range of implementations of pretty much all finalized optional JSRs including full-set MSA (Mobile Services Architecture).

However, it also suffered from a few weaknesses. Its internal architecture had grown complex over the years and it was hard to add entirely new functionality or port the WTK to different desktop platforms such as Linux, Solaris, and Mac OS. Also, WTK originally focused MIDP/CLDC development and so coders wanting to develop for other platforms such as CDC or Blu-ray had to use a different tool (the Sun Java Toolkit for CDC). Finally, the underlying Java ME emulation was based on the old KVM stack which was not designed to be high-performance and which also was not true to actual device implementations.

So it was time for a radical update. Say goodbye to WTK and hello to the Java ME SDK!

The Java ME SDK is now available as an Early Access version for Windows XP and Vista (Linux and Mac users ... don't fret - stay tuned). The Java ME SDK is a complete redesign with all the goodness that made WTK so popular but with a new architecture underneath and a host of new features. Some highlights:

  • New tool framework based on Netbeans Platform
  • CLDC/MIDP, CDC/FP/PBP/AGUI and BD-J integrated into one SDK
  • New CLDC HotSpot Virtual Machine based on phoneME
  • Optimized MSA 1.1 stack with extensions
  • Lightweight UI Toolkit (LWUIT) integration
  • Integration with 3rd party emulators and Windows Mobile devices
  • On-device deployment and on-device debugging
  • Profiling support
  • Device search database integrated in SDK

What does this mean for developers?

The Java ME SDK is a much improved tool all-around. It is based on the very capable Netbeans framework so it is more easily extensible and more portable than before. It incorporates all major Java ME platforms (mass-market mobile phones, smart phones, and Blu-ray) into a single tool. The Java ME emulation is now much accurate as phoneME (and it's commercial counterparts) is used in millions of devices today. The popular Lightweight UI Toolkit (LWUIT) is now pre-integrated into the Java ME SDK as an additional option for rich UI development. There is a bundled Windows Mobile Java ME stack that allows developers to deploy and test directly on Windows Mobile from the comfort of the SDK. And much more.

Please download it and try it out. We look forward to including your feedback into the final product.

Also, check out Tomas Brandalik's blog for more info.


-- Terrence


his is one of the advancements in the Java ME space. You all proved that the tools also getting matured as as the mobile hardware innovation continues.

I've always been wondering what drove the WTK guys at Sun to develop something (I mean the WTK) which is so inherently difficult to port. Haven't they heard of this great platform called Java SE ? ;-) Now there is a solution in sight for MacOS X and Linux. Good news.

pjulien, hersag, WinMobile CAB for device is bundled with Java ME Platform SDK. You can find WinMobile CAB file in \on-device\winmobile-arm It is version that you can install on device and enjoy all the on device features coming with ME SDK, like on-device debugging, hot deployment, VM output redirection etc. Users Guide in docs folder will give you detailed information how to use this runtime on device or WinMobile/WinCE emulator Cheers, Richard


You can use phoneME Advanced. More information here:

Hope that helps,
-- Terrence


The official phoneME builds are on the "downloads" section of the phoneME project. But: they are updated infrequently (for release milestones) and they are no for Windows Mobile since that is not an officially support platform yet. For regular Windows Mobile builds check out Davy's web page:

-- Terrence

Terrence, Are there any official builds available for phoneME Advanced and phoneME Feature? I'm talking about CAB files that create the proper file associations so that the browser starts phoneME instead of something else when it invokes a jad file.

What's the story with JavaCard? Is there a reason that it wasn't integrated with this toolkit?

does it install JVM on Windows Mobile & Windows CE ? i couldnt find Sun JVM for those (is there any?). i need to develop a program on Windows CE PDA's, but really dont want to use .NET&compact mssql. I like to use java & javadb. there are lots of pages and ideas about Java ME but its very confusing when it comes to deploying on handheld PDA's. i really like to know whether there is Sun JVM for Windows CE/Mobile. (not the commercial ones)

This is a very promising step, I like that you are now supporting windows mobile. I have an HTC mobile, I download the KVM on it but I can not find a way to start a Midlet using the new KVM. It keeps opening the jar file using the old KVM and sun KVM does not have any option to open the jar file in the menu.

very good, very nice. congrats. will try it. ceo

This is some amazing news! And it couldn't happen in a better time, just right to face increasing competition from iPhone and Android. I've been playing with both, and the maturity of JavaME's SDK was miles ahead even with the old WTK... the iPhone SDK, for one thing, is only available for Macs, has a very primitive emulator, and forces me to use a programming language that the world would have forgotten for good if NeXT and then Apple didn't keep imposing it to developers. (Sorry Obj-C and NS* fans, but if this language and frameworks were worth anything today, they would have at least modest popularity in platforms that don't enforce their use.) Android is much better; its toolchain is still a poor clone of JavaME's, but it's improving quickly (of course, being a Java-like platform makes this evolution much easier).