On Solaris and Windows a jar file may be directly executed.
On Solaris, this is because the kernel exec mechanism can recognize a jar file by various magic numbers and the like. Hence, the name of the file can be anything; it just needs to be marked executable.
On Windows, this is accomplished by the typical .3 suffix binding mechanism. ".jar" is bound to the default jvm. Hence, the name must end in ".jar", but this isn't an issue on Windows.
The Linux kernel should behave like Solaris and recongnize a jar file and exec the appropriate JVM. Even the most casual observer should note that this requires a change to the Linux kernel, and that's what makes it hard: we need to engage Linus and make this happen. Based on the Solaris experience, the implementation is fairly trivial - about 100 lines of fairly well isolated code. The effort is getting permission to integrate it.
Note, that without implementing the "default java on Linux" project, this doesn't have a chance. The Linux community would not accept an implementation which forced a Sun JVM. (Just explicity calling out the dependency.)
###@###.### 2004-12-21 04:10:36 GMT