자바 실행 과정
1. 자바 컴파일러를 통해 자바 소스 파일(.java)를 바이트코드(.class)로 변환 ➡️ 1차 컴파일
컴파일 명령어 : "javac 파일명.java"
2. JVM에 의해 바이트코드(.class) 파일을 메모리에 로딩하고 그와 동시에 운영체제 플랫폼에 맞게 리소스들을 다시 재컴파일 하여 실행 ➡️ 2차 컴파일
바이트코드 변환 후 실행 명령어 : "java 파일명"
JVM(Java Virtual Machine)
❓Java 프로그램을 컴파일하여 만들어지는 바이트코드(.class)를 실행시키기 위한 가상 머신
- 자바 프로그램을 운영체제에 상관없이 실행할 수 있게 해주고 프로그램 메모리를 관리하고 최적화해줌.
- 자바는 exe가 아니기 때문에 더블 클릭하여 실행할 수 없음.
- 자바 소스 파일을 1차 컴파일한 바이트코드를 실행해 주는 실행 엔진이 필요하고 그 실행 엔진이 JVM
- JVM에 의해 바이트코드(.class) 파일을 메모리에 로딩을 하고 그와 동시에 운영체제 플랫폼에 맞게 resource들을 다시 재컴파일을 해서 실행함. ➡️ 즉, 내부적으로 2번의 컴파일이 일어남.
- 자바는 JVM이 있으면 어떤 운영체제에서든 상관없이 구동이 되기 때문에 자바 프로그램을 어떤 운영체제에 상관없이 독립적으로 구동시킬 수 있음.
- 그러나 가상 머신에 의해서 실행이 되기 때문에 .exe 파일처럼 더블 클릭으로 바로 실행되는 다른 언어보다는 느릴 수 있음.
- 만약 내가 작업한 Java 파일을 다른 사람에게 보냈을 때 받은 사람의 PC에 JVM이 설치되어 있지 않으면 JRE(Java Runtime Environment)라는 실행환경을 설치해야 한다는 단점도 있음.
- 각 운영체제에 맞는 JDK를 다운받아 설치하면 os 메모리 위에 JVM이 메모리에 탑재되어 있게 됨.
- JDK(Java Development Kit)는 명령어들의 집합이라고 볼 수 있으며 이를 설치해야 javac 같은 명령어 사용할 수 있음.
자바 프로그램 폴더 기본 구조
1. bin
java 소스 파일을 1차 컴파일한 byte code 파일이 있음.
바이트 코드의 확장자는 .class
2. src
작성한 java 소스 파일이 있음.
소스 파일의 확장자는 .java
✔️ 참고
Java TPC (생각하고, 표현하고, 코딩하고) - 자바의 구동 방식
'Java' 카테고리의 다른 글
[Java] constructor, 생성자란 무엇인가? (2) | 2024.02.08 |
---|---|
[Java 09] 예외(Exception) (0) | 2023.08.09 |
[Java 08] Autoboxing - primitive type & Wrapper class (0) | 2023.08.09 |
[Java 07] 매개 변수화 타입(Parameterized Type) (0) | 2023.08.09 |
[Java 06] Generic Programming (0) | 2023.08.09 |