+1 for JarMatey, hehehe…
I think that part of the problem is that you’re arguing with people who mostly agree with you. We’re Java developers, so sure, we can agree that jars are easy. If your audience is Java developers, jars are a great option. If your audience is guaranteed to care enough (friends, family) to make sure Java is installed and to fix any problems they have running a jar, then jars are a great option.
However, you’re vastly overestimating the average user. For a jar to work, Java (the correct version of Java) has to be installed, the system path has to be configured correctly, and the OS has to associate jars with Java instead of an archive manager.
The above is fine in most cases, let’s say 75% (that’s probably a high estimate) of the time. But what happens the other 25% of the time? If it’s somebody you know personally, or a fellow programmer, then fixing the above is no problem. But what about your average user (who can’t tell you the difference between an operating system, a web browser, the internet, and facebook)?
You say that all you have to do is tell them to install Java and give them a link, but 90% of users won’t follow a link. Most of them won’t even bother contacting you or reading any FAQ or troubleshooting guide if your game doesn’t “just work” in the first place. And then to walk them through installing Java, possibly setting up their path, possibly changing the file association… it’s just not going to happen. Sad, but true.
But again, that’s fine for most cases, because chances are you aren’t dealing with the general public like that. But if you want to get into “real” game development, then exporting as a packaged executable (or exporting as html5/javascript) is the way to go.
I still prefer to deploy my programs as jars, but that’s because I’m not very worried about the general public (I have Android for that). I still think most people should deploy as a jar, because they shouldn’t be worried about the general public either, at least until their game is at a point where the general public would play it anyway.
JarMatey (which I created and is completely open-source) does export other jars, native libraries, external files, and class files as a self-extracting runnable jar, so that might be worth checking out. Another option is JWrapper, which exports platform-specific executables.