SuperWaba development on OS X Tiger
I decided to try some Palm OS programming. Although I have an entire book on the subject, the inconvenience of setting up a development environment has stymied me in the past. I’m not fan of Java—I despise its unecessary verboseness, its incomplete object orientation, and the ungainliness of Java applications on almost any platform—but SuperWaba, a miniature Java-compatible virtual machine aimed at handheld devices, seemed like it would do the trick.
I found a tutorial and downloaded the SuperWaba SDK
Installing the SDK was simply a matter of copying two files,
SuperWaba.jar
and SuperWabaTools.jar
, and
adding them to the Java classpath. It’s important to note that you
must add the jar
files themselves to the classpath;
adding their parent directory won’t work.
Unfortunately, there are a couple of extra problems to address before you can actually compile and run even a simple Hello World application.
First, the version of Java used as standard in OS
X—1.4.2—doesn’t work with Waba. But don’t panic! Version 1.3 is
still available; you just have to find it. You can just type in the
path to javac
and java
: they are found in
‘/System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Commands
’.
But that’s rather too much effort. Instead, you can make a couple
of symlinks. I have a ~/bin
directory in my path; you
can make the symlinks in /usr/local/bin
if you prefer.
I’ve elided some of the extravagantly long path, but you’ll have to
type in the whole thing.
% ln -s (path)/1.3.1/Commands/java ~/bin/java13 % ln -s (path)/1.3.1/Commands/javac ~/bin/javac13
You can now use java13
and javac13
when compiling and executing Waba code.
The second wrinkle is that, even with the correct version, you still need to compile to the correct target: 1.1. The correct command line for compiling a Waba program is now:
% javac13 -target 1.1 Foo.java
Still a bit of a hassle, right? I thought, why not create a
wabac
to compile Waba programs? Here’s
wabac
(chmod
it executable):
#!/bin/sh javac13 -target 1.1 $*
To run the compiled program on the local machine for testing,
use waba
:
#!/bin/sh java13 waba.applet.Applet $*
Finally, I made two more scripts in the same vein to give
warp
and exegen
.
After having done all that, I was able to compile a SuperWaba Hello World program, run it on OS X, install it to my Palm (Tungsten T3) and run it there.
Once.
For some reason, my Palm wouldn’t run the same program ever again. Oh well, at least the development environment works.