There is no single answer to the question, as it is ambigious.
The Java Language Specification is written in some form of English, as should be obvious.
If you are referring to the Sun JDK (and this might be different for JDKs from other vendors), most of the class library and the tools like javac are written in Java, with some native code mixed in, probably written mostly in C.
It is not uncommon for a language to be written in itself, though it may seem counter intuitive.
I know GNU C Compiler was written (almost) entirely in C. (It's prob'ly even more complex today - my knowledge backdates 15 years.)
You'd use the native C compiler (available on any UN*X box) to compile gcc. Then Use the new gcc to compile itself again, because there are a LOT of optimizations in the gcc compiler that don't exist in the standard compilers.
And of course, just compile version N+1 with version N.