Máquina virtual Java
La maquina virtual java consisite en un programa escrito tambien en lenguaje java que compila un programa escrito en java en un programa binario o tambien llamado bytecodes o.class, para mas tarde interpretar este programa.
La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de manera que desde SUN se han creado diferentes máquinas virtuales java para diferentes arquitecturas y asi un programa .class escrito en un windows puede ser interpretado en un entorno linux. Tan solo es necesario disponer de dicha máquina virtual para dichos entornos. Así como un programa .exe escrito en por ejemplo C y en un windows nunca podrá ser ejecutado en un linux (necesitarias el fuente y compilarlo de nuevo en linux para poder ejecutarlo), un programa en java permite que lo escribas una vez y que lo ejecutes donde quieras con un 100% de portabilidad.