Una precisión: Java no es interpretado. Al compilar un archivos .java se genera un bytecode que es el lenguaje máquina de la JVM. Este esquema es mucho más eficiente que el lenguaje interpretado.
Como este bytecode solo lo entiende la JVM, se requiere una ambiente de ejecución que se conoce como el JRE, que incluye la JVM y todas las librerías básicas que uno normalmente utiliza para la ejecución de los programas..