왜 JVM(Java Virtual Machine)인가?
- 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의
바이트 코드
이므로 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요함
- 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 함
- 운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제와 자바 프로그램을 중계하는 JVM을 두어 여러 운영체제에서 동일한 실행 결과가 나오도록 설계함
바이트 코드
- 모든 JVM에서 동일한 실행 결과를 보장하지만, 운영체제에 종속적임
- 운영체제가 이해하는 기계어로 번역해서 실행해야 하므로 JVM은 운영체제에 맞게 설치되어야 함
자바 프로그램의 실행 단계
- 확장자가 .java인 파일을 작성한다. (소스 파일)
- 컴파일러로(javac.exe)로 컴파일한다.
- 컴파일된 바이트 코드 파일(*.class)가 생성된다.
- JVM 구동 명령어(java.exe)에 의해 바이트 코드 파일이 해석되고 운영체제에 맞게 기계어로 번역된다.
- 바이트 코드는 하나지만, JVM에 의해서 번역되는 기계어는 운영체제에 따라 다르다.
Reference
- 신용권, 『이것이 자바다』, 한빛미디어(2018.1.5), 7p ~ 8p