eclipse) "Editor does not contain a main type"

손종일·2023년 9월 29일
  1. 메인 메서드가 없는 경우
  2. 클래스가 패키지에 속하지 않는 경우
  3. 클래스파일 또는 프로젝트 설정 문제

2번의 경우, Java 실행기가 클래스를 찾지 못해서 발생하는 오류인데, 그렇다면 Java 실행기가 어떤 원리로 작동하길래 클래스가 패키지에 속하지 않으면 오류가 발생하는건가요?

Java 실행기는 클래스 파일을 실행할 때 클래스의 위치를 찾아야 합니다.클래스가 패키지에 속하지 않으면 Java 실행기가 클래스를 찾는 데 어려움이 생깁니다. 이것은 Java의 클래스 경로(classpath) 및 패키지 구조에 관련된 원리로 설명될 수 있습니다.

이 패키지 구조는 클래스로더(Class Loader)에 의해 사용되며, 클래스로더는 클래스 파일을 로드하고 실행하는 역할을 합니다. 클래스로더는 클래스 파일을 찾을 때 클래스 경로(classpath)를 검색합니다. 클래스 경로에는 클래스 파일이 위치한 디렉토리와 JAR 파일 등이 포함됩니다.

만약 클래스가 패키지에 속하지 않는다면, 이 클래스는 클래스 경로의 어떤 디렉토리나 JAR 파일 안에 위치하지 않습니다. 따라서 Java 실행기는 해당 클래스를 찾을 수 없게 되며 "Editor does not contain a main type"과 같은 오류가 발생하게 됩니다.

따라서 Java에서는 클래스 파일이 패키지 구조에 따라 위치하도록 하는 것이 중요하며, 이를 지키지 않으면 클래스 로딩 및 실행 과정에서 오류가 발생할 수 있습니다.

profile
아자아자 화이팅!

0개의 댓글