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