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-2012
Sección: Cursos
Categoría: Curso “Aprender programación Java desde cero”
Fecha última actualización: 2012
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.
(CU00611B)
La máquina virtual Java (JVM). Compilador e intérprete. Bytecode.
© aprenderaprogramar.com, 2006-2012
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-2012
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-2012
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-2012
La ruta en la que se ubican ambos archivos es esta o una similar a esta: “C:Archivos de programa (x86)
Javajdk1.6.0_18bin” (o más exactamente “C:Program Files (x86)Javajdk1.6.0_18bin”, que es la
ruta real con la que Windows trabaja). 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

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

La actualidad más candente (17)

Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Pruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAPPruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAP
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Java swing
Java swingJava swing
Java swing
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Java janner
Java   jannerJava   janner
Java janner
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de Java
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Características Java
Características JavaCaracterísticas Java
Características Java
 
Qué es java
Qué es javaQué es java
Qué es java
 
Clase2
Clase2Clase2
Clase2
 
Java ventajas y caracteristicas
Java ventajas y caracteristicasJava ventajas y caracteristicas
Java ventajas y caracteristicas
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 

Similar a Maquinavirtual java (20)

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
JAVAJAVA
JAVA
 
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
 
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
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
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
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
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
 
JAVA
JAVAJAVA
JAVA
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 

Más de Gabriel Mondragón

Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptxPrincipios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptxGabriel Mondragón
 
Aplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptxAplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptxGabriel Mondragón
 
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptxVentajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptxGabriel Mondragón
 
Presentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia ArtificialPresentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia ArtificialGabriel Mondragón
 
Convocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturoConvocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturoGabriel Mondragón
 
Presentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_plantelesPresentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_plantelesGabriel Mondragón
 
Elaboracion material didactico
Elaboracion material didacticoElaboracion material didactico
Elaboracion material didacticoGabriel Mondragón
 
Segunda jornada academica y de gestion
Segunda jornada academica y de gestionSegunda jornada academica y de gestion
Segunda jornada academica y de gestionGabriel Mondragón
 
Primera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 bPrimera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 bGabriel Mondragón
 
Tercera jornada academica y de gestion
Tercera jornada academica y de gestionTercera jornada academica y de gestion
Tercera jornada academica y de gestionGabriel Mondragón
 
Productos segunda jornada 2019 a
Productos segunda jornada 2019 aProductos segunda jornada 2019 a
Productos segunda jornada 2019 aGabriel Mondragón
 
Aspectos positivos y negativos
Aspectos positivos y negativosAspectos positivos y negativos
Aspectos positivos y negativosGabriel Mondragón
 
Abandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolaresAbandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolaresGabriel Mondragón
 

Más de Gabriel Mondragón (20)

Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptxPrincipios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
Principios y Estrategias del Diseño Universal del Aprendizaje (1).pptx
 
Aplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptxAplicaciones de la IA en educación (1).pptx
Aplicaciones de la IA en educación (1).pptx
 
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptxVentajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
Ventajas y desventajas de utilizar aplicaciones con IA en la educación (1).pptx
 
Presentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia ArtificialPresentación del curso de Inteligencia Artificial
Presentación del curso de Inteligencia Artificial
 
Convocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturoConvocatoria soluciones paraelfuturo
Convocatoria soluciones paraelfuturo
 
Presentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_plantelesPresentacion para transferencia_en_los_planteles
Presentacion para transferencia_en_los_planteles
 
Material didactico
Material didacticoMaterial didactico
Material didactico
 
Elaboracion material didactico
Elaboracion material didacticoElaboracion material didactico
Elaboracion material didactico
 
Segunda jornada academica y de gestion
Segunda jornada academica y de gestionSegunda jornada academica y de gestion
Segunda jornada academica y de gestion
 
Anexos comunicacion afectiva
Anexos comunicacion afectivaAnexos comunicacion afectiva
Anexos comunicacion afectiva
 
Primera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 bPrimera jornada academica y de gestion 2019 b
Primera jornada academica y de gestion 2019 b
 
Infografia problematicas
Infografia problematicasInfografia problematicas
Infografia problematicas
 
Tercera jornada academica y de gestion
Tercera jornada academica y de gestionTercera jornada academica y de gestion
Tercera jornada academica y de gestion
 
Productos segunda jornada 2019 a
Productos segunda jornada 2019 aProductos segunda jornada 2019 a
Productos segunda jornada 2019 a
 
Aspectos positivos y negativos
Aspectos positivos y negativosAspectos positivos y negativos
Aspectos positivos y negativos
 
Abandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolaresAbandono aprovechamiento practicas escolares
Abandono aprovechamiento practicas escolares
 
Primera jornada 18 b
Primera jornada 18 bPrimera jornada 18 b
Primera jornada 18 b
 
Segunda jornada 18 b
Segunda jornada 18 bSegunda jornada 18 b
Segunda jornada 18 b
 
Tecnicas modelo
Tecnicas modeloTecnicas modelo
Tecnicas modelo
 
Proyectos
ProyectosProyectos
Proyectos
 

Último

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 

Último (20)

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 

Maquinavirtual java

  • 1. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2012 Sección: Cursos Categoría: Curso “Aprender programación Java desde cero” Fecha última actualización: 2012 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. (CU00611B)
  • 2. La máquina virtual Java (JVM). Compilador e intérprete. Bytecode. © aprenderaprogramar.com, 2006-2012 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-2012 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-2012 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-2012 La ruta en la que se ubican ambos archivos es esta o una similar a esta: “C:Archivos de programa (x86) Javajdk1.6.0_18bin” (o más exactamente “C:Program Files (x86)Javajdk1.6.0_18bin”, que es la ruta real con la que Windows trabaja). 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