As long as the runtime is installed then you can run your program. Same goes with Visual Basic .Net untill the runtime is integrated into the windows OS.
Suns Java compiler can not make EXE's but there are other compilers out there than can do this but that completly defeats the purpose of using java.. if you want to make exe's use C++
It also converts the entire java API into native .dll files which your .exe file will need inorder to run.
You could also write a launcher in a native language which starts the JVM and runs your program. Or you could use a batch file (windows) or script (unix) to run your program. They also come in handy if you need to repeatedly compile numberous source files. Or you could put your .class files in a jar archive. You can run programs in jar files by double clicking in windows.
there also are programs that will write a "Wrapper" for your java files so that when you double click the exe all it does it call the jvm and pass the class location, tis makes it easier to use while remaining cross-platform (except for the wrapper of course)
"There are only two things that are infinite. The universe and human stupidity... and the universe I'm not sure about." - Einstein