I always feel like i had to learn any language like C++ in order to create applications that people could run without have jdk in their computer. However, and googling for other purpose, a caught this:
http://www.javaworld.com/javaqa/2001-06 ... 5-exe.html
There (after a little explanation), drives you to some pages where you can download a native code compiler. I didnt know about that and was so surprised to download one (excelsior JET) and try it: After build my own gui application, compile it and then compile to native code, i take to a machine w/o java, run it and...voila! My program was fully working without the need of Java in the computer

Of course everything has his advantages and disadvantages, in this case, the native code compilation make your application platform-dependient, which means, only will work in the platform where it was build, something that wouldnt happen with the non-native code java application