La traducción se realiza en Java porque Java es un lenguaje de alto nivel que una computadora no puede ejecutar hasta que se traduce a un lenguaje de bajo nivel (estos lenguajes a veces se denominan "lenguajes de máquina" o "lenguajes ensambladores").
De todos modos, la traducción en Java (y en la mayoría de los lenguajes) ocurre de dos formas: compilando e interpretando.
Lo extraño de Java es que se puede compilar e interpretar. Esto se debe a que, en lugar de tener que traducir programas Java al tipo de lenguaje de máquina de bajo nivel que mencioné anteriormente, el compilador de Java genera código de bytes de Java.
Este código de bytes es similar al lenguaje de máquina (por lo que una máquina puede interpretarlo) pero también se considera portátil (una cualidad de un lenguaje de alto nivel), lo que significa que el código de bytes se puede transferir e interpretar automáticamente en otra máquina.
¡Esa es una breve descripción general de cómo funciona la traducción en Java!