What about a simple starter.jar which runs on *every* JVM independant of
the version?
You could do that, I suppose. There still one case where this wouldn't
work, though - if a user doesn't have a JVM installed at all. I know
it is probably an uncommon case, but still one to consider.
Another point to consider is better OS integration. By default a JAR
file will just have a Java icon, whereas a native .exe launcher could
have the application icon embedded in it as a resource. A better
example of where a native launcher would be more beneficial is on a
Mac OS X system. For a clickable-launchable application on the Mac,
there is a whole directory structure that must be set up. But once it
is, it fits right in with the native environment and feels more like a
normal application.
This doesn't matter for more techie/developer oriented programs,
because users like you and I know that we can just double click the
jar and that's good enough for us, because it's a Java program.
But again, you make some good points too - just keeping the discussion
going!