본문 바로가기
카테고리 없음

[Linux] JDK, JRE, JVM 이란?

by 떵해이 2020. 10. 26.
300x250

간단하게 아는 만큼만 설명하겠습니다. 자세하게는 좀 어렵습니다.

 

○ JDK

    ▷ JDK(Java Development Kit)는 자바 개발 도구의 약자입니다.

 

    JDK는 JRE외에 개발을 위해 필요한 도구(javac, java 등등)을 포함

 

    ▷ 하는 일 중 가장 큰 역할이 컴파일러 역할을 할 수 있습니다. (javac.exe = java컴파일러

                                                                                                 java.exe = JVM 구동 프로그램)

 

 

사용자가 java소스(.java)를 만들었다. 기계어로 변경해야 기계가 실행합니다.                      

(.java)는 기계어로 변환하려면 과정을 거쳐야합니다.

 

                    파일을 변환하기 위해 javac.exe가 도와줍니다. (.java) -> (.class)

 

바이트 코드 파일(.class)로 컴파일 되어 변환 합니다.

 

                    바이트 코드 파일이 실행되도록 java.exe가 도와줍니다. JVM을 구동시킵니다.

 

바이트 코드가 컴파일되면서 그 뒤부터 JVM이 구동됩니다.

(java.exe가 JVM을 구동시키기 위한 명령 프로그램 이라고 합니다.)

JVM을 거쳐 컴퓨터가 사용할 수 있는 기계언어로 변경해줍니다.

 

 

○ JRE

    ▷ JRE(Java Runtime Environment)는 자바 실행환경의 약자입니다.

 

    ▷ JVM이 구동할 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다.

 

    JRE는 JVM의 실행환경을 구축해주는 것이다. (JVM의 조력자)

 

 

○ JVM

    JVM(Java Virtual Machine)의 약자이다.

 

    JVM은 자바 소스코드로부터 만들어지는 자바 파이너리 파일(.class)를 실행할 수 있다.

 

    JVM은 운영체제마다 다르다. (.class)파일을 OS에 맞는 기계코드로 변환

        그러나 한번 컴파일 된 코드는 서로 다른 JVM이라도 돌아가도록 만들었다.

 

    ▷ 플랫폼(OS)에 종속적이다.

 

 

※ Java 의 장점이 여기서 나옵니다.

   한번 컴파일 된 바이트 코드는 어느 플랫폼에서도 사용 가능하도록 만들어져 있습니다.

 

 

※ 헷갈리기 쉬운 것

 

바이트 코드 : JVM 같은 가상 머신이 이해할 수 있는 코드 (.class)

 

바이너리 코드 : CPU가 이해할 수 있는 코드

 

 

● 간단 명료(느낌)

 

JDK > JRE > JVM

 

JDK = 개발 환경(+컴파일)  /  JRE = 실행 환경 구축  /  JVM = 실행

 

간단한 실행 순서 

사용자 Java 코드 생성 -> JDK컴파일(.class 파일 생성) -> JVM -> 실행

          (.java)      ->      (javac)      ->      (.class)      -> (jvm) -> process

반응형

댓글