간단하게 아는 만큼만 설명하겠습니다. 자세하게는 좀 어렵습니다.
○ 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
댓글