Will I be able to create a single executable, (native code or not) that will execute without the need for anything else, using JNI?

Alexander Krapf

If you do not compile to native code you will of course always need a JVM and the base class library (Object, String, Thread, etc.).

In theory, you can compile your Java classes into C/C++ code and use JNI to load them into the JVM. We do that in our JunC++ion product (http://www.codemesh.com) to minimize the set of files that need to be deployed. We have written a tool that performs most of the required steps for that purpose.