SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2029
Sección: Cursos
Categoría: Curso “Aprender programación Java desde cero”
Fecha revisión: 2029
Resumen: Entrega nº11 curso Aprender programación Java desde cero.
Autores: Alex Rodríguez y Walter Sagástegui
APRENDERAPROGRAMAR.COM
LA MÁQUINA VIRTUAL JAVA
(JVM). COMPILADOR E
INTÉRPRETE. BYTECODE,
CÓDIGO FUENTE Y CÓDIGO
MÁQUINA. (CU00611B)
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2029
MÁQUINA VIRTUAL JAVA (JAVA VIRTUAL MACHINE O JVM). COMPILADOR E INTÉRPRETE. BYTECODE.
Vamos a crear nuestro primer programa, que nos servirá para comprobar si hemos instalado y
configurado correctamente Java. Pero antes vamos a repasar algunos conceptos importantes que nos
permitan entender lo que vamos haciendo.
El primer concepto a abordar es el de compilación. “Compilar” significa traducir el código escrito en
“Lenguaje entendible por humanos” (por ejemplo Java, C, Pascal, Fortran), a un código en “Lenguaje
Máquina”, que entienden las máquinas, pero no entendible por nosotros. Se hace esto porque a los
humanos nos resultaría casi imposible trabajar directamente con el lenguaje de los ordenadores. Es por
eso por lo que usamos un lenguaje más asequible para nosotros (en nuestro caso Java) y luego
empleamos un traductor (compilador). La creación de programas en muchos lenguajes se basa en el
proceso: escribir código fuente  compilar y obtener programa ejecutable. El compilador se encarga de
evitar que se pueda traducir un programa con código fuente mal escrito y de hacer otras verificaciones
previas, de modo que el código máquina tiene ciertas garantías de que cumple cuando menos con los
estándares de sintaxis obligatorios de un lenguaje.
En este esquema, el archivo ejecutable no es válido para cualquier ordenador. Por ejemplo, si se ha
generado el ejecutable para Windows, no podrá utilizarse en Macintosh. Sin embargo el proceso en
Java no se corresponde con el gráfico anterior. Esta fue una característica novedosa de Java respecto a
otros lenguajes cuando se lanzó la primera versión de Java. La novedad introducida fue que Java se hizo
independiente del hardware y del sistema operativo en que se ejecutaba. En otros lenguajes existía el
problema de compatibilidad descrito. Sin embargo, Java se hizo independiente de la plataforma
añadiendo un paso intermedio: los programas Java no se ejecutan en nuestra máquina real (en nuestro
ordenador o servidor) sino que Java simula una “máquina virtual” con su propio hardware y sistema
operativo. En resumen, el proceso se amplía en un paso: del código fuente, se pasa a un código
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2029
intermedio denominado habitualmente “bytecode” entendible por la máquina virtual Java. Y es esta
máquina virtual simulada, denominada Java Virtual Machine o JVM, la encargada de interpretar el
bytecode dando lugar a la ejecución del programa.
Esto permite que Java pueda ejecutarse en una máquina con el Sistema Operativo Unix, Windows, Linux
o cualquier otro, porque en realidad no va a ejecutarse en ninguno de los sistemas operativos, sino en
su propia máquina virtual que se instala cuando se instala Java. El precio a pagar o desventaja de este
esquema es que todo ordenador que quiera correr una aplicación Java ha de tener instalado Java con su
máquina virtual. Las diferencias entre ambas concepciones podemos verlas en los siguientes esquemas.
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2029
La máquina virtual era un aspecto importante que diferenciaba a Java de otros lenguajes cuando
irrumpió en el mercado de los lenguajes de programación; permitía escribir y compilar el programa
una sola vez en lugar de varias veces y ejecutar ese código en cualquier plataforma (“write once, run
anywhere”).
Otra razón de su gran éxito ha sido que cuando surgió se convirtió en un lenguaje más orientado a
objetos que todos los otros lenguajes existentes. Además cabe destacar su potencia y el permitir crear
programas de aspecto y funcionamiento muy similar al también muy popular “entorno Windows”. Esto
afianzó su reconocimiento como un lenguaje de programación innovador.
Aclarar que al ser Java un programa que se interpreta en una máquina virtual, el archivo resultante de
la compilación es un archivo con la extensión .class interpretable por la máquina virtual. Este archivo
.class está escrito en un lenguaje de máquina virtual (bytecode).
Para que la “Máquina Real” (nuestro ordenador) ejecute el programa, hay que “interpretar” (traducir)
el archivo .class a un código en “Lenguaje de Máquina Real”. Esta es la labor de lo que llamamos
“intérprete” o traductor del lenguaje de la máquina virtual a la máquina real.
Los archivos respectivos que se encargan de estas tareas son:
• El compilador Java --- > javac.exe. Se encarga de compilar el código fuente.
• El intérprete Java --- > java.exe. Se encarga de interpretar los archivos .class (bytecode).
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2029
La ruta en la que se ubican ambos archivos es esta o una similar a esta: “C:Program Files (x86)
Javajdk1.7.0_51bin” (o “C:Program FilesJavajdk1.7.0_51bin”, depende de la versión de Windows
en caso de que usemos Windows). El explorador de Windows nos muestra una barra con la ruta en que
nos encontramos (ruta aparente). Para conocer la ruta real basta pinchar sobre la ruta aparente.
En la próxima entrega veremos los pasos para compilar e interpretar nuestro primer programa escrito
en lenguaje Java.
Próxima entrega: CU00612B
Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Más contenido relacionado

La actualidad más candente

Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaSantiago Sora
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicasAny Saula
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basicoSaviotec
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de JavaLuzRom
 
Características Java
Características JavaCaracterísticas Java
Características JavaIsabel Gómez
 
Pruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAPPruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAPIsamar Francisco
 
Java ventajas y caracteristicas
Java ventajas y caracteristicasJava ventajas y caracteristicas
Java ventajas y caracteristicasbat1820
 
Java janner
Java   jannerJava   janner
Java jannersena
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.guestdf1874
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrolloDavid
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragadoMaria
 

La actualidad más candente (18)

Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de Java
 
Características Java
Características JavaCaracterísticas Java
Características Java
 
Pruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAPPruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAP
 
Java swing
Java swingJava swing
Java swing
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Java ventajas y caracteristicas
Java ventajas y caracteristicasJava ventajas y caracteristicas
Java ventajas y caracteristicas
 
Java janner
Java   jannerJava   janner
Java janner
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
java
javajava
java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 

Destacado

Educación a distancia doris
Educación a distancia dorisEducación a distancia doris
Educación a distancia dorisDORIISSS
 
Seminario de investigacion
Seminario de investigacionSeminario de investigacion
Seminario de investigacionfercastillo2503
 
Casos de estudio
Casos de estudioCasos de estudio
Casos de estudioesanz0701
 
Emare 2 netzwerkstruktur und informationsgehalt
Emare 2   netzwerkstruktur und informationsgehaltEmare 2   netzwerkstruktur und informationsgehalt
Emare 2 netzwerkstruktur und informationsgehaltDanielaBock
 
Fase 2 plan de producción
Fase 2 plan de producciónFase 2 plan de producción
Fase 2 plan de producciónlpt22
 
Violación
ViolaciónViolación
ViolaciónH-idy12
 
2.1 estudio de mercado def y obj. expo!!!!
2.1 estudio de mercado def y obj. expo!!!!2.1 estudio de mercado def y obj. expo!!!!
2.1 estudio de mercado def y obj. expo!!!!chacataka
 
Uso de texto, tabla e imágenes
Uso de texto, tabla e imágenesUso de texto, tabla e imágenes
Uso de texto, tabla e imágenesfernanpolanc
 
Partes y funcionamiento de slideshare
Partes y funcionamiento de slidesharePartes y funcionamiento de slideshare
Partes y funcionamiento de slideshareVanessaCastiblanco
 
Trabajo Practico n7
Trabajo Practico n7Trabajo Practico n7
Trabajo Practico n7rociomaidana
 
6666666666666666666666666666666
66666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666pupo98
 
Productos en lata
Productos en lataProductos en lata
Productos en lataRosa Loja
 
Circular externa 006 12 ses resumen
Circular externa 006 12 ses resumenCircular externa 006 12 ses resumen
Circular externa 006 12 ses resumendaroviasocoph
 
Políticas publicas para que la tecnología conduzca al progreso
Políticas publicas para que la tecnología conduzca al progresoPolíticas publicas para que la tecnología conduzca al progreso
Políticas publicas para que la tecnología conduzca al progresoStephanie Guzman Morales
 

Destacado (20)

Educación a distancia doris
Educación a distancia dorisEducación a distancia doris
Educación a distancia doris
 
Podcast
PodcastPodcast
Podcast
 
Seminario de investigacion
Seminario de investigacionSeminario de investigacion
Seminario de investigacion
 
Casos de estudio
Casos de estudioCasos de estudio
Casos de estudio
 
Emare 2 netzwerkstruktur und informationsgehalt
Emare 2   netzwerkstruktur und informationsgehaltEmare 2   netzwerkstruktur und informationsgehalt
Emare 2 netzwerkstruktur und informationsgehalt
 
Fase 2 plan de producción
Fase 2 plan de producciónFase 2 plan de producción
Fase 2 plan de producción
 
Listening
ListeningListening
Listening
 
Violación
ViolaciónViolación
Violación
 
2.1 estudio de mercado def y obj. expo!!!!
2.1 estudio de mercado def y obj. expo!!!!2.1 estudio de mercado def y obj. expo!!!!
2.1 estudio de mercado def y obj. expo!!!!
 
Uso de texto, tabla e imágenes
Uso de texto, tabla e imágenesUso de texto, tabla e imágenes
Uso de texto, tabla e imágenes
 
Partes y funcionamiento de slideshare
Partes y funcionamiento de slidesharePartes y funcionamiento de slideshare
Partes y funcionamiento de slideshare
 
Jimmy
JimmyJimmy
Jimmy
 
Autoestima
AutoestimaAutoestima
Autoestima
 
Cidi
CidiCidi
Cidi
 
Trabajo Practico n7
Trabajo Practico n7Trabajo Practico n7
Trabajo Practico n7
 
6666666666666666666666666666666
66666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666
 
El Realismo
El RealismoEl Realismo
El Realismo
 
Productos en lata
Productos en lataProductos en lata
Productos en lata
 
Circular externa 006 12 ses resumen
Circular externa 006 12 ses resumenCircular externa 006 12 ses resumen
Circular externa 006 12 ses resumen
 
Políticas publicas para que la tecnología conduzca al progreso
Políticas publicas para que la tecnología conduzca al progresoPolíticas publicas para que la tecnología conduzca al progreso
Políticas publicas para que la tecnología conduzca al progreso
 

Similar a JVM BYTECODE INTÉRPRETE

Similar a JVM BYTECODE INTÉRPRETE (20)

Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Java basico
Java basicoJava basico
Java basico
 
Java basico
Java basicoJava basico
Java basico
 
JAVA
JAVAJAVA
JAVA
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Curso java desde cero nivel i - modulo i
Curso java desde cero   nivel i - modulo iCurso java desde cero   nivel i - modulo i
Curso java desde cero nivel i - modulo i
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Clase2
Clase2Clase2
Clase2
 
Java
JavaJava
Java
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
JAVA
JAVAJAVA
JAVA
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 

Último

Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)BrianaFrancisco
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx46828205
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxmrzreyes12
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.Aldo Fernandez
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 

Último (16)

Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptx
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 

JVM BYTECODE INTÉRPRETE

  • 1. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2029 Sección: Cursos Categoría: Curso “Aprender programación Java desde cero” Fecha revisión: 2029 Resumen: Entrega nº11 curso Aprender programación Java desde cero. Autores: Alex Rodríguez y Walter Sagástegui APRENDERAPROGRAMAR.COM LA MÁQUINA VIRTUAL JAVA (JVM). COMPILADOR E INTÉRPRETE. BYTECODE, CÓDIGO FUENTE Y CÓDIGO MÁQUINA. (CU00611B)
  • 2. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2029 MÁQUINA VIRTUAL JAVA (JAVA VIRTUAL MACHINE O JVM). COMPILADOR E INTÉRPRETE. BYTECODE. Vamos a crear nuestro primer programa, que nos servirá para comprobar si hemos instalado y configurado correctamente Java. Pero antes vamos a repasar algunos conceptos importantes que nos permitan entender lo que vamos haciendo. El primer concepto a abordar es el de compilación. “Compilar” significa traducir el código escrito en “Lenguaje entendible por humanos” (por ejemplo Java, C, Pascal, Fortran), a un código en “Lenguaje Máquina”, que entienden las máquinas, pero no entendible por nosotros. Se hace esto porque a los humanos nos resultaría casi imposible trabajar directamente con el lenguaje de los ordenadores. Es por eso por lo que usamos un lenguaje más asequible para nosotros (en nuestro caso Java) y luego empleamos un traductor (compilador). La creación de programas en muchos lenguajes se basa en el proceso: escribir código fuente  compilar y obtener programa ejecutable. El compilador se encarga de evitar que se pueda traducir un programa con código fuente mal escrito y de hacer otras verificaciones previas, de modo que el código máquina tiene ciertas garantías de que cumple cuando menos con los estándares de sintaxis obligatorios de un lenguaje. En este esquema, el archivo ejecutable no es válido para cualquier ordenador. Por ejemplo, si se ha generado el ejecutable para Windows, no podrá utilizarse en Macintosh. Sin embargo el proceso en Java no se corresponde con el gráfico anterior. Esta fue una característica novedosa de Java respecto a otros lenguajes cuando se lanzó la primera versión de Java. La novedad introducida fue que Java se hizo independiente del hardware y del sistema operativo en que se ejecutaba. En otros lenguajes existía el problema de compatibilidad descrito. Sin embargo, Java se hizo independiente de la plataforma añadiendo un paso intermedio: los programas Java no se ejecutan en nuestra máquina real (en nuestro ordenador o servidor) sino que Java simula una “máquina virtual” con su propio hardware y sistema operativo. En resumen, el proceso se amplía en un paso: del código fuente, se pasa a un código
  • 3. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2029 intermedio denominado habitualmente “bytecode” entendible por la máquina virtual Java. Y es esta máquina virtual simulada, denominada Java Virtual Machine o JVM, la encargada de interpretar el bytecode dando lugar a la ejecución del programa. Esto permite que Java pueda ejecutarse en una máquina con el Sistema Operativo Unix, Windows, Linux o cualquier otro, porque en realidad no va a ejecutarse en ninguno de los sistemas operativos, sino en su propia máquina virtual que se instala cuando se instala Java. El precio a pagar o desventaja de este esquema es que todo ordenador que quiera correr una aplicación Java ha de tener instalado Java con su máquina virtual. Las diferencias entre ambas concepciones podemos verlas en los siguientes esquemas.
  • 4. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2029 La máquina virtual era un aspecto importante que diferenciaba a Java de otros lenguajes cuando irrumpió en el mercado de los lenguajes de programación; permitía escribir y compilar el programa una sola vez en lugar de varias veces y ejecutar ese código en cualquier plataforma (“write once, run anywhere”). Otra razón de su gran éxito ha sido que cuando surgió se convirtió en un lenguaje más orientado a objetos que todos los otros lenguajes existentes. Además cabe destacar su potencia y el permitir crear programas de aspecto y funcionamiento muy similar al también muy popular “entorno Windows”. Esto afianzó su reconocimiento como un lenguaje de programación innovador. Aclarar que al ser Java un programa que se interpreta en una máquina virtual, el archivo resultante de la compilación es un archivo con la extensión .class interpretable por la máquina virtual. Este archivo .class está escrito en un lenguaje de máquina virtual (bytecode). Para que la “Máquina Real” (nuestro ordenador) ejecute el programa, hay que “interpretar” (traducir) el archivo .class a un código en “Lenguaje de Máquina Real”. Esta es la labor de lo que llamamos “intérprete” o traductor del lenguaje de la máquina virtual a la máquina real. Los archivos respectivos que se encargan de estas tareas son: • El compilador Java --- > javac.exe. Se encarga de compilar el código fuente. • El intérprete Java --- > java.exe. Se encarga de interpretar los archivos .class (bytecode).
  • 5. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2029 La ruta en la que se ubican ambos archivos es esta o una similar a esta: “C:Program Files (x86) Javajdk1.7.0_51bin” (o “C:Program FilesJavajdk1.7.0_51bin”, depende de la versión de Windows en caso de que usemos Windows). El explorador de Windows nos muestra una barra con la ruta en que nos encontramos (ruta aparente). Para conocer la ruta real basta pinchar sobre la ruta aparente. En la próxima entrega veremos los pasos para compilar e interpretar nuestro primer programa escrito en lenguaje Java. Próxima entrega: CU00612B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188