JVM(Java Virtual Machine)
인텔의 기계어 코드를 실행하는 기계를 인텔 호환 컴퓨터라고 한다. 동일한 의미로 자바 기계어 코드 (클래스 파일: *.class)를 실행시켜주는 기계를 자바 머신이라고 한다. 인텔과 자바 머신의 차이는 인텔의 경우는 CPU 칩으로 만든 것에 비해, 자바의 경우에는 소프트웨어로 만들어져 있다. 이렇게 자바 기계어 코드를 실행시켜주는 소프트웨어를 자바 가상머신이라고 한다. 따라서 J2SDK의 java 명령어와 웹 브라우저는 자바 가상 머신을 가지고 있다고 할 수 있다. Java 명렁어는 자바 응용프로그램(애플리케이션)을 실행할 수 있고, 웹 브라우저는 자바 애플릿을 실행시킬 수 있기 때문이다. 

 


j2se5.gif

이 그림을 보는 것이 어느정도 이해하는 데 도움이 될 것으로 보인다(출처 :  JDK SE 5 API 문서).

  • JRE(Java RuntimeEnvironment) - 자바 런타임 환경 : 자바가 실행되는데 필요한 기본 환경을 뜻함.
    프로그래밍된 자바 클래스를 실행할 수 있는 기본 실행환경

 

  • JDK(Java Deveopment Kit) - 자바 개발 키트(Javac 포함)

    자바 프로그램은 자바 바이트 코드 인터프리터(Java Complier) javac 컴파일러를 통해서  class 파일로 변환된다. class 파일은 플랫폼과 무관한 코드이기 때문에 바이트 코드(ByteCode)라고도 한다. 바이트 코드는 각 플랫폼에 있는 자바 가상 머신의 자바 바이트 코드 인터프리터를 통해 실행된다. 자바 가상 머신의 바이트 코드 인터프리터는 실제적으로는 java 명령어나 웹 브라우저에 포함되어 있다.

    • javac ( 컴파일러 ) : 자바 컴파일러
    • java (인터프리터) : 자바 인터프리터는 디폴트로 JIT(Just In Time) 컴파일러를 사용한다. 클래스가 로드되면 JIT은 클래스의 바이트 코드를 기계어로 변환한다. JIT을 사용하는 경우에 일반적으로 클래스 로드하는 시간이 오래 걸리지만 전체적인 시스템 성능은 높아진다. 
    • appletviewer ( 애플릿 실행기 ) : 애플릿을 실행시켜주는 브라우저이다.
    • javah ( 헤더 파일 생성기 ) : C언어를 위한 헤더 파일을 생성한다.
    • jar ( Java 용 압축프로그램, 배포용 ) : 자바 압축 파일을 만들고 압축을 풀어준다.
    • javap ( 역어셈블러 ) : 클래스 파일을 역어셈블(기계어 형태로 번역)한다.

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts