Friends, I am using JSMOOTH installer for creating .exe file and Bundled my Default JRE path in it..
If the user doesn\'t have Java Virtual Machine in his system it
I encountered the same problem. Based on other hints in the aether, I think the problem is related to win32/win64, in particular the bundle option will only work with a win32 jre. I switched in a win32 jre and got further, but the launch still failed because some of the necessary .dlls hadn't been installed. It looks like the bundle option can't be reliable without a jre designed to not require installation.
Then, I found https://portableapps.com/apps/utilities/java_portable and I succeeded with that jre. It's java 1.8.0_181 which is a bit old, but adequate for my needs.
I am not familiar with JSmooth Java launcher creator. But, based on Launch4J Java launcher creator, you shall include your target JRE folder (all folders and subfolders of target JRE intact) as part of your application launcher bundle. Launch4J must be run from the base folder where it can find the JRE folder. For example, if your have a project launcher path like "C:\MYProject\install" where you compile all your classpath dependency files to run your launcher EXE file with "C:\MyProject\install\jre1.6.0_26" is the target JRE folder inside it. Your JVM bundle entry shall be "jre1.6.0_26". Launch4J EXE launcher file shall be able to find relative "jre1.6.0_26" folder from the base of "C:\MYProject\install"
When translate this to what your EXE launcher file will do when it tries to run:
C:\C:\MYProject\install
|__MyApp.EXE (your resulting output launcher file)
|__all classpath dependency jars needed by MyApp.EXE
|__jre1.6.0_26 (folder of JVM bundle)
Ant task for Launch4J script:
<exec executable="C:\Program Files\Launch4j\launch4jc.exe">
<arg value="${basedir}\myLaunch4j.xml"/>
</exec>