Java is Interpreted

Java is both interpreted and compiled. The javac compiler converts Java source into byte code. Byte code is the machine language for the Java Virtual Machine. Byte code is more compact and much faster to interpret than the Java source code. Byte code can be interpreted on any machine or architecture.
There is nothing about Java that demands interpretation. Native code compilers exist, but there are some advantages to interpretation, as well.
Consider the following links:
b) or back to Java is Distributed
n) or next to Java is Robust
or
x) or out to Sun's Definition of Java

Links:
Java is Distributed
Java is Robust
Sun's Definition of Java