Consider writing a simple java class that starts
your main java program, and them compile that. An .exe for people to click on - no command-line parameters to fool around with. No worries about which API's it supports, so long as it supports the "java.lang.Runtime.exec()" method...
Of course, this means you'd still have to distribute a JRE with your program (or somehow determine whether the user already had it installed or not).
Hm, I guess this is [EDIT:] exactly what Jeff was talking about. One might wonder if I even read his post.
With GCJ, you should be able to create an executable launcher program for many platforms.
Hey, maybe I'll do one myself, just for kicks.