martes, 20 marzo 2007

JVM for Windows Mobile (J2ME) // PocketPC - PDA

« Remove JTable's Enter Key behavior | Main | Choosing a printer programmatically in Jasper Reports »

If you've ever tried to run a java program with your windows mobile device you'll be aware its one of the most difficult tasks. Sun doesn't officially support windows mobile devices, so you must go to a third party solution.

Why hasn't Sun released an official JVM for ARM pocket PC's? As you can read in the official Sun forum in the thread Open letter to SUN to produce a JRE for Pocket PC

...Unfortunately, since it's not an officially supported project at Sun (i.e. one that will generate enough revenue based on our projections to cover the costs) it is having problems getting out to the public..."

There is a great FAQ where you can find summarized everything about this issue Java on PocketPC (Unofficial FAQ).

Available JVM's

Java Support on Pocket PC This URL forwards you to an old comparison chart where you can find a summarized list of the java available options for Pocket Pc's.

There are many commercial and non commercial non-official JVM's for pocket pc. Most of them have the common problem of needing too much memory to run and implementing very old java profiles.

IBM WebSphere Everyplace Micro Environment

This is a commercial JVM developed by IBM. You can buy licenses online for about $5. There are also trial versions avaialble at IBM for you to try.

As you can read in the IBM site, the JVM features J2ME support for the Connected, Limited Device Configuration (CLDC 1.0 and 1.1) and Mobile Information Device Profile (MIDP 2.0) and for the Connected Device Configuration (CDC 1.0_01), Foundation Profile, and Personal Profile.

Summarizing, IBM solution is a cheap way to implement java in your pocket pc, and enable it to run smartphone software.

Mysaifu JVM

MySaifu is a GPL'd licensed Java virtual machine which runs on Windows Mobile OS's. Currently you can find compiled versions for:

  • Windows Mobile 5.0

  • Windows Mobile 2003 Second Edition software for Pocket PC (Pocket PC 2003 SE)

  • Windows Mobile 2003 software for Pocket PC (Pocket PC 2003)

This is my personal favorite solution. Apart from being free, it isn't a memory expensive solution and you can run java 1.3 applications, including support for AWT.

MySaifu Sample ScreenShotMySaifu Sample ScreenShot

These are two screenshots of sample applications running on PocketPC using MySaifu JVM. As you can see there is complete support for AWT components which can be easily extended to support better graphic options.

The Rest

As far as I'm concerned the rest of JVM options have been abandoned long ago and are very outdated. Other than that, most of them are commercial versions and much worse than the IBM solution. So if you want to implement java applications in your pocket PC my recommendation is either to use IBM webSphere if what you want is the J2ME standard or MySaifu if you prefer to run J2SE programs.

Technorati Tags:

Posted by admin at 8:01 AM in Java

 

[Trackback URL for this entry]

Comment: jawed at vie, 23 mar 12:02 PM

I need jvm for my pc.

Comment: Rohan Chandane at mar, 27 mar 9:42 AM

I dont know how, but when I installed on my i-mate sp3 which has Windows Mobile 2003, it doesn't work and was always throwing exception while running Midlet. Even when I run Hello World Midlet.

Rohan Chandane

Comment: Marc Nuri at mar, 27 mar 10:54 AM

You say you've installed something but not what you installed. I imagine you installed mySaifu and for that reason you're having problems to run your midlets.
As I said on the post, IBM WebSphere is apropriate to run J2ME applications, and MySaifu is recommended to run J2SE.
If you plan to run already programmed midlets from your i-mate, it's highly recommended you install webSphere because you'll avoid headaches.
If what you're planning is to develop your own applications and they are solely designed to be run from your pda, mySaifu is your best choice, because it's not so limited.
This doesn't mean you are not able to run midlets from mySaifu, because as in a regular desktop computer, there are toolkits available that permit you emulate midp environments. you can read more in Sun Java Wireless Toolkit for CLDC or ME4SE.

Comment: Brandon at mar, 22 abr 12:47 AM

Thanks, this is helpful. I have been using J9 for a while now and I'm pretty sure it's the best option. I use SWT and JFace.

Comment: Amir at mié, 7 may 12:36 AM

did mySaifu JVM supports the package java.nio of J2SE ?

Your comment:

(not displayed)
 

SCode

Please enter the code as seen in the image above to post your comment.

 
 

Live Comment Preview:

 
Google
 
« March »
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031