This has been a frequent question since the very early days of
Java (1995). Although it is possible to generate a *.exe that runs a Java program it generally brings very few benefits in that it will require the exact same runtime support (i.e. the disk space of the JRE) as the equivalent Jar file and will not provide any performance benefits as it will still be relying on running .class files through a virtual machine. You can investigate the GCJ solution which is a component of the GNU compiler chain but on balance I strongly recommend you don't pursue the route of trying to generate *.exe files. You will spend a large amount of time and energy and gain very little benefit even if you succeed.