Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 main 메서드를 private으로 선언할 수 있을까?

결론부터 말하자면, Java에서 main 메서드를 private으로 선언하는 것 자체는 가능합니다.

private으로 선언된 main 메서드가 포함된 코드는 컴파일 단계에서 아무런 오류 없이 정상적으로 통과합니다. 하지만 프로그램을 실제로 실행하려고 하면 JVM(Java Virtual Machine)이 public 접근 제어자를 가진 main 메서드를 찾지 못해 런타임 오류가 발생합니다.

예제 코드

class PrivateMainMethod {
    private static void main(String args[]){
        System.out.println("Welcome to Tutorials Point");
    }
}

위 코드는 컴파일 시점에는 문제없이 성공하지만, 실행 단계에서 다음과 같은 오류를 발생시킵니다.

실행 결과

Error: Main method not found in class PrivateMainMethod, please define the main
method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

오류의 원인

JVM은 프로그램 실행 시 진입점(entry point)으로 public static void main(String[] args) 형태의 메서드를 찾습니다. main 메서드가 private으로 선언되면 JVM이 해당 메서드에 외부에서 접근할 수 없기 때문에, 마치 main 메서드가 아예 존재하지 않는 것처럼 "Main method not found" 오류를 출력하게 됩니다.

정리

main 메서드를 private으로 선언하면 컴파일은 가능하지만 프로그램을 실행할 수 없습니다. 따라서 실제 개발 환경에서는 반드시 public static void main(String[] args) 형식으로 선언해야 정상적으로 애플리케이션을 구동할 수 있습니다.