JVM for Windows Mobile (J2ME) // PocketPC - PDA MySaifu
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).
This URL (Java Support on Pocket PC) 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 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.
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.
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.
Comments in "JVM for Windows Mobile (J2ME) // PocketPC - PDA MySaifu"
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.
I just installed Mysaifu on my Ipaq h6315, and it works fine. :)