I have done some reading on the internet and some people say that Java application is executed by the java virtual machine (JVM). The word \"execute\" confuses me a little bit.
Since it is already machine codes, do we need the JVM any more? compiled java programs are not the machine codes. [javac] compile [.java] file into bytecode [.class] file.Then these bytecodes are given to JRE [Java Run-time Environment]. Now the java interpreter comes in action that interpret the bytecode into native machine code that run on the CPU.