Once dependent on the JVM forever dependent on it. So, as for the issue of not needing the JRE, the simplistic answer is ... impossible, because the code is based on functionality and JAVA code that the application uses.
That said ... some solutions are possible that can compress the JAR (s) inside an EXE, but include the JRE inside I do not know.
However, in response ... the best solution is with the GCJ compiler.
GCJ can compile the Java source code for Java bytecode (class files) or directly into native machine code, and Java bytecode for native machine code.
In this sense, this will be the solution to the question asked, but, "everything has a but", this solution poses some problems in the medium term with regard to compatibility and maintenance during the life of application since we can not rely on the that JAVA has the best in my opinion. The abstraction of the operating system and especially all the support implicit in the JAVA tools.