Users simply click an .exe file or shortcut to run the application.
No need for users manually to install a JRE or any extra libraries.
No need for users to set class path or path variables.
Users will never know you used Java.
No problems due to incompatible versions of Java already installed on the machine (mostly due to Microsoft's broken version) and this allows you to use non-standard JVM options such as setting heap size.
There are no problems with using the launcher with autorun, various installers (such as InstallShield) or various third party libraries.
It works with with any Java virtual machine no matter whether it are standard conforming or not. In fact it can be used to launch interpreters for languages such a Perl or Python, too.
If you provide your own native DLL libraries you are sure that your versions of the libraries are loaded - not some duplicates present in a system library.