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.
If you simply would like to create an executable wrapper around your java application (jar file) you could consider Launch4j. [ May 19, 2006: Message edited by: Edwin Dalorzo ]