GUI-less java apps are pretty useless without arguments afterall...
I used to like executable jar's but I find now that (most of the time) batch files / shell scripts are more versatile.
FWLIW, I go out of my way to avoid java apps that faff about with shell scripts and the like. If I want a platform-dependent application, I'll find a version that was written in C++.
I'm not claiming you can do everything with a JAR (although, in theory, you can, in practice it may be too much effort), but usually when I see shell scripts etc in place of executable JAR's it's programmer ignorance or a badly-designed app.
P.S. Linux kernel allows me to run java apps directly just by typing their names...so AFAICS I get no benefit from a shellscript invoked app?
<rant - in the hope of persuading people to use JAR's>
It drives me up teh wall when sourceforge projects distribute a java app as a ZIP file !!! For [deity]'s sake! This is insane! All it means is that everyone has to unpack the damn thing before they can run it. In most cases, there's a JAR file inside the ZIP file, and it's not even got a manifest-MainClass...so you have to use some crappy shell script to run the JAR.
Supproting the same app cross-platform (as an administrator, or just as a user with multiple OS's) is much harder when you have extra files for particular platforms.
And then the shellscript often doesn't work anyway (due to variety of different shells people use, or plain broken scripts).
The world of JAR's is beautiful (*) - entirely self-contained programs, all in one file, easy to manage, easy to backup, easy to copy. And it works on all platforms where the app runs. Even when an app uses multiple JAR's, it's really simple to administer - when I have to keep track of several files of different types, some of which may not show up because of hidden files settings etc, it's a complete pain.
(*) = except that they don't have any versioning support that doesn't suck.