JAVA needs JVM in order to run properly, period. So install4j or exe4j copies a JRE with your compiled java class files and make it look like an executable file on Windows. It will run "java whatYourProgram" command bebind the scenes when a user try to click and run it on windows.