자바 클래스 파일은 .class 확장자를 가지며, 그 안에는 자바 바이트코드(bytecode)가 담겨 있습니다. 이 파일은 JVM(Java Virtual Machine)에 의해 실행되는 실질적인 실행 단위입니다.
.class 파일은 자바 컴파일러(javac)가 .java 소스 파일을 성공적으로 컴파일했을 때 생성됩니다. 즉, 컴파일이 오류 없이 완료되는 순간 해당 폴더에 바이트코드 파일이 만들어지는 것입니다.
하나의 .java 파일에 여러 클래스가 있을 때
주목할 점은 하나의 .java 파일 안에 여러 개의 클래스가 정의되어 있다면, 컴파일 후 각 클래스마다 별도의 .class 파일이 생성된다는 것입니다. 예를 들어 파일 안에 클래스가 4개라면, 컴파일 결과로 4개의 .class 파일이 만들어집니다.
예제 코드
class A {
A() {
System.out.println("This is class A");
}
}
class B {
B() {
System.out.println("This is class B");
}
}
class C {
C() {
System.out.println("This is class C");
}
}
public class ClassTest {
public static void main(String[] args) {
A obj1 = new A();
B obj2 = new B();
C obj3 = new C();
}
}위 예제에서 ClassTest.java 파일에는 총 네 개의 클래스(A, B, C, ClassTest)가 정의되어 있습니다. 따라서 컴파일이 성공적으로 끝나면 해당 폴더에는 다음과 같은 네 개의 .class 파일이 생성됩니다.
- A.class
- B.class
- C.class
- ClassTest.class
실행 결과
This is class A This is class B This is class C
정리
.class 파일은 자바 컴파일러가 .java 소스를 성공적으로 컴파일하는 시점에 생성되며, 소스 파일 내에 정의된 클래스 수만큼 개별적인 클래스 파일이 만들어집니다. JVM은 이 바이트코드를 읽어 프로그램을 실행하기 때문에, .class 파일은 자바 프로그램 배포와 실행의 핵심 요소라고 할 수 있습니다.