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.
...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.
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.