IMHO, the best way to distribute java programs is create a single jar and the append that jar to this shell script:
#!/bin/sh
exec java $JAVA_OPTS -jar "$0" "$@" #!/bin/sh
exec java $JAVA_OPTS -jar "$0" "$@"https://github.com/brianm/really-executable-jars-maven-plugi...
the best way to distribute a package is to create a proper package for each plateform and encapsulate any java "gimmick".
java -jar Product.jar
If there are any native libraries then they need to be built into the jar, you could do one jar or one for each platform.