I was reading some posts about JVM and found some confusing information.
for example here: http://www.cs.cmu.edu/~jcarroll/15-100-s05/supps/basics/history.html
it says "In fact, the Java compiler is often called the JVM compiler (for Java Virtual Machine)".
Further more, I could not find the exact answer if the java compiler is part of the JVM or not. I know that the the JVM is an interpreter, but i read that it does some compiling too. Also, as far as i know, JVM is part of JRE; javac part of JDK and JRE part of JDK.
So is javac part of JVM? I think it's not, but not sure though.
That is mainly about terminology, wording.
There is the java
binary executable (and some subtle variations of it, such as javaw). That is the java virtual machine! You invoke that binary, and a JVM gets launched (see here for all the glory details).
In essence:
java
binary) java
and javac
)Finally: using the term "JVM compiler" for javac
is wrong and misleading. javac
turns java source code into java bytecode, which then can be executed by the JVM. But just to be really complete here: most JVM implementations also contain a "just in time" compiler component to transform byte code into native machine code to improve performance.