I have a Java program, let's say it's called MyApp.jar

To run it on Linux, I just write a shell script called myapp.sh, which simply runs `java -jar MyApp.jar` and double click on it. Everything works well.

On Windows 7, I cannot assume that the `java` command will be in everyone's path (if that's what you call it on Windows), so I have to have a workaround and do something like create a batch script with this in it: `"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar MyApp.jar`, which is obviously a Bad Solution... and it doesn't work on XP or Vista. It works on *most* Windows 7 machines though.

My application ships as a .zip file, the user extracts it to a folder MyApp, and then ideally will double click on *something* to invoke the program. So far it has a .sh script for Linux users to double click on, and a batch script for Windows 7 users (it works in *most* cases). It creates and consumes files in its own directory (MyApp). 

What is the best way to invoke this program in a cross platform way? 

Thanks!