I have been playing with the <jre><path>x</path></jre> option and understand I can use this to reference a private JRE that can be used if I was distributing my app with some sort of installer. The JRE could be included within the installer and then I install both my app and a version of the JRE.
However, I (and it appears a lot of other people) are looking for the ability to bundle the JRE into the actual EXE that Launch4j produces. From my understanding of how Launch4j works, it extracts the JAR file and then searches for a version of the JRE to run the JAR file with.
Why isn't it possible for Launch4j to extract the JAR as well as the JRE into a temporary directory and then execute the JAR with the extracted JRE?
I work in an environment where running installers is difficult, but there are no issues with someone running an EXE file off a flash drive or from a file share, etc.
The feature of launch4j is that it does not need to extract the jar, the output executable is still a jar file. This does not stop you from running your application from a flash drive or share. This even allows to run it from a readonly media like CD. You just can't put it in one file without a 3rd party installer.
I understand. I have been playing with the "bundledJreAsFallback" option, which I have managed to use in my specific scenario to help me out by referencing a JRE on a local network drive - it is only used as a last resort. Personally I don't like the option of bundling an out of date and large JRE with my software. Hopefully Project Jigsaw in Java 9 will allow the JRE to be stripped down enough that distributing it isn't as painful.