[Java] 3. JDK의 컴파일 설명


JDK의 기준으로 컴파일 과정을 간단하게 설명을 위한 포스팅이다.


1. JDK의 컴파일 설명



파일명역할설명
javac.exe컴파일러자바소스코드를 바이트코드로 컴파일
java.exe인터프리터컴파일러가 생성한 바이트코드를 해석하고 실행
javap.exe역어셈블러컴파일된 클래스파일을 원래의 소스로 변환
jar.exe압축프로그램클래스파일과 프로그램과 프로그램의 실행에 관련된
파일을 하나의 jar파일(.jar)로 압축/해제


cmd 창에서 간단하게 컴파일 과정을 확인하기 위해
text로 HelloWorld.java 을 만든다.

HelloWorld.java 자바소스파일 생성

public class HelloWorld {
	
	public static void main (String[] agrs) {
		System.out.println("Hello World");
	}

}


HelloWorld.java > HelloWorld.class (바이트코드로 컴파일)

C:\javaTest>javac HelloWorld.java

! javac.exe: 자바소스코드를 바이트코드로 컴파일

우리가 코딩한 자바소스파일인 HelloWorld.java을
자바 바이트코드로 컴파일 해서 HelloWorld.class 만들어진 것을 확인 할 수 있다.


jdk-compile_1


HelloWorld.class 파일 실행

jre에서 실행을 담당하는 파일로 아래와 같이 실행을 하면 우리가 작성한 자바소스코드 Hello World가 찍힌다.

C:\javaTest>java HelloWorld.java
Hello World

! java.exe: 컴파일러가 생성한 바이트코드를 해석하고 실행


컴파일된 HelloWorld.class 원래의 소스로 변환

C:\javaTest>javap HelloWorld.class

! javap.exe: 컴파일된 클래스파일을 원래의 소스로 변환

jdk-compile_2


cf) 자바 바이트코드(Java bytecode)

자바 가상 머신(JVM)이 이해할 수 있는 언어의 형태이고, JVM은 바이트코드를 다시 OS의 기계어로 변환되어 OS로 전달한다. 그래서 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서라도 실행이 가능하다.

이어서 java 실행 과정은 다음 포스팅에 이어서 설명 하겠습니다.


출처:
https://devbox.tistory.com/entry/실행