Saltar la navegación

7.6.- Java y los Bytecodes.

Un programa escrito en Java no es directamente ejecutable, es necesario que el código fuente sea interpretado por la Maquina Virtual Java. ¿Cuáles son los pasos que se siguen desde que se genera el código fuente hasta que se ejecuta? A continuación se detallan cada uno de ellos.

Esquema que muestra el proceso desde la creación del código fuente en Java, pasando por las fases de compilación, generación de bytecodes y su interpretación en la Máquina Virtual Java.
Ministerio de Educación (Elaboración Propia) (CC BY-NC)
  1. Una vez escrito el código fuente (archivos con extensión .Java), éste es precompilado generándose los códigos de bytes, Bytecodes o Java Bytecodes (archivos con extensión .class)
  2. Los archivos de bytecodes serán interpretados directamente por la Maquina Virtual Java y traducidos a código nativo de la plataforma sobre la que se esté ejecutando el programa.
Bytecode: Son un conjunto de instrucciones en lenguaje máquina que no son específicas a ningún procesador o sistema de cómputo. Un intérprete de código de bytes (bytecodes) para una plataforma específica será quien los ejecute. A estos intérpretes también se les conoce como Máquinas Virtuales Java o intérpretes Java de tiempo de ejecución.

En el proceso de precompilación, existe un verificador de códigos de bytes que se asegurará de que se cumplen las siguientes condiciones:

  • El código satisface las especificaciones de la Máquina Virtual Java.
  • No existe amenaza contra la integridad del sistema.
  • No se producen desbordamientos de memoria.
  • Los parámetros y sus tipos son adecuados.
  • No existen conversiones de datos no permitidas.

Para que un bytecode pueda ser ejecutado en cualquier plataforma, es imprescindible que dicha plataforma cuente con el intérprete adecuado, es decir, la máquina virtual específica para esa plataforma. En general, la Máquina Virtual Java es un programa de reducido tamaño y gratuito para todos los sistemas operativos.

Esquema general de la arquitectura de un programa ejecutándose en una Máquina Virtual Java. El archivo con el código fuente (extensión .java) es compilado mediante javac.exe, obteniéndose los bytecodes (extensión .class). Finalmente, mediante el intérprete java.exe se ejecutarán los bytecodes en la plataforma específica.
Ministerio de Educación (Elaboración propia) (CC BY-ND)