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 Smalltalk -
The Java libraries (
java.lang,java.utiletc, often referred to as the Java API) are themselves written in Java, although methods marked asnativewill have been written inCorC++. -
I believe that the Java compiler provided by Sun is also written in Java. (Although again, there are multiple compilers out there)