.class파일을 실행하기 위해서는 java 프로그램(명령어)를 사용한다.
그러면 이 jdk내부에 있는 java 파일이 class파일을 실행해주는 거냐?
그게 아니라 java 파일이 JVM을 호출해서, JVM이 클래스 파일을 실행하는 것이다.
JVM을 알면 자바의 특징을 알 수 있다. 따라서 좀 자세히 알아보자.
우선 다른 프로그래밍 언어들과의 차이점을 비교해보자
다른 언어는 한 번 컴파일을 하게 되면, 다른 플랫폼에서 실행이 불가능하다.
하지만 Java는 JVM을 통해 실행하기 때문에 컴파일된 파일들을 다른 OS에서 실행을 해도 실행이 가능하게 되는 것이다.
이러한 특성 때문에 class파일을 중간어 코드라고 부르기도 한다.
1차 컴파일 된 ByteCode를 자신의 OS에 맞게 한 번 더 컴파일해, 내부적으로 exe 코드를 만들어 이 코드를 JVM이 실행하는 것이다.
이를 2-pass compile이라고 한다.
컴파일 및 실행 과정을 살펴보면 아래와 같다.