Posted by terrencebarr
on September 21, 2008 at 6:39 AM PDT
The Sun WTK (Wireless Toolkit) for years has been the de-facto standard for mobile development on the Java platform (together with the "Mobility " plug-in for NetBeans which is itself built on the WTK and hooks it into the NetBeans IDE).
However, the original architecture and implementation of the WTK was quite OS specific and had a number of hooks into the underlying platform features and so the WTK has been only available for Windows and, lately, for Linux. Developers on Mac OS X (and Solaris, for that matter) were left out in the cold. But due to the numbers and Windows being the vastly predominant platform developers were using it just didn't make sense to create (and support!) a whole new port of WTK to the Mac platform.
So what can Mac users do (and I am one myself) to develop mobility apps on OS X? The recommended method currently really is to run Windows (or Linux) in virtualization (via VirtualBox , VMWare Fusion , or Parallels ) and then the WTK on top of that virtualized OS. Not exactly elegant but it is generally pretty painless and works very well if your goal is to be productive and just get the job done.
However, increasingly, people are also going the route of using Java ME emulators written in Java SE to provide mobility functionality on platforms that otherwise lack WTK support, such as OS X and Solaris. Some examples are mpowerplayer and microemulator . While this approach is not perfect (in particular, Java SE-based emulators tend to lack tight platform integration, some advanced tools such as monitoring, and some of the latest JSRs features) it does allow the Mac OS user to run and develop Java ME applications directly on OS X.
Karol Harezlak from the NetBeans team has built a plug-in for microemulator that allows Java ME application development within NetBeans 6 in a fashion similar to the original Mobility plug-in under Windows and Linux. Currently there are still a couple of limitations with this in respect to the microemulator functionality (MIDP CustomItem is not completely implemented and there are a couple of issues with some JSR implementations). But it's a great start and since microemulator is an open source project I expect the community to continue to address the remaining issues over time.
Found out more on the NetBeans wiki .