The precise phrasing of the question is slightly misleading: it is not “the JVM” or “the compiler” as there are multiple JVM vendors (jrockit is one, IBM another) and multiple compilers out there.
The Sun JVM is written in
C
, although this need not be the case – the JVM as it runs on your machine is a platform-dependent executable and hence could have been originally written in any language. For example, the original IBM JVM was written in SmalltalkThe Java libraries (
java.lang
,java.util
etc, often referred to as the Java API) are themselves written in Java, although methods marked asnative
will have been written inC
orC++
.I believe that the Java compiler provided by Sun is also written in Java. (Although again, there are multiple compilers out there)