[Java] 'Could not find or load main class' 오류 해결 방법 총정리

[Java] 'Could not find or load main class' 오류 해결 방법 총정리

Java
민호이 민호이 2025. 1. 13. 03:20
목차
  1. 1. Could not find or load main class란?
  2. 2. 주요 원인
  3. 2.1 클래스 이름 오류
  4. 2.2 잘못된 클래스 경로 설정
  5. 2.3 패키지 선언 및 디렉토리 구조 불일치
  6. 2.4 main 메서드 누락
  7. 2.5 빌드 파일 문제
  8. 3. 해결 방법
  9. 3.1 클래스 이름 확인
  10. 3.2 클래스 경로 설정
  11. 3.3 패키지 구조 확인
  12. 3.4 main 메서드 추가
  13. 3.5 JAR 파일 실행 설정
  14. 4. 추가 팁
  15. 4.1 디버깅 옵션 사용
  16. 4.2 IDE 설정 확인
  17. 5. 결론

1. Could not find or load main class란?

Could not find or load main class 오류는 Java 애플리케이션을 실행하려고 할 때 메인 클래스를 찾거나 로드하지 못했을 때 발생합니다. 이는 Java 프로그램의 진입점인 main 메서드를 포함한 클래스가 제대로 설정되지 않았거나 실행 환경에서 찾을 수 없을 때 주로 나타납니다.


2. 주요 원인

2.1 클래스 이름 오류

  • 잘못된 클래스 이름을 지정한 경우:
    • 예: java HelloWorld 대신 java helloWorld를 입력.
    • 대소문자가 구분됩니다.
  • 클래스 이름에 패키지가 포함되지 않은 경우:
    • 예: java HelloWorld 대신 java com.example.HelloWorld 필요.

2.2 잘못된 클래스 경로 설정

  • 클래스가 저장된 경로가 CLASSPATH에 포함되지 않았습니다.
  • -classpath 옵션으로 지정한 경로가 잘못되었거나 누락되었습니다.

2.3 패키지 선언 및 디렉토리 구조 불일치

  • 클래스가 패키지에 선언되었지만, 디렉토리 구조가 일치하지 않는 경우.
    • 예: com.example.HelloWorld는 com/example/HelloWorld.class에 있어야 합니다.

2.4 main 메서드 누락

  • 클래스에 public static void main(String[] args) 메서드가 없거나 서명이 잘못된 경우.

2.5 빌드 파일 문제

  • JAR 파일 실행 시 MANIFEST.MF 파일에 Main-Class 속성이 누락되었거나 잘못 설정된 경우.

3. 해결 방법

3.1 클래스 이름 확인

  • 클래스 이름은 반드시 **완전한 클래스 이름(FQN)**이어야 합니다.
  • java com.example.HelloWorld

3.2 클래스 경로 설정

  • 클래스 파일이 위치한 디렉토리를 -classpath로 설정:
  • java -classpath /path/to/classes com.example.HelloWorld
  • 여러 JAR 파일을 사용하는 경우:
  • java -classpath "lib/*:." com.example.HelloWorld

3.3 패키지 구조 확인

  • 클래스 파일이 패키지 선언에 따라 올바른 디렉토리에 있는지 확인.
    • com.example.HelloWorld → com/example/HelloWorld.class

3.4 main 메서드 추가

  • main 메서드가 다음과 같이 정확히 선언되었는지 확인:
  • public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }

3.5 JAR 파일 실행 설정

  • JAR 파일 실행 시 MANIFEST.MF에 Main-Class를 설정해야 합니다:
  • Main-Class: com.example.HelloWorld
  • 실행 명령:
  • java -jar myapp.jar

4. 추가 팁

4.1 디버깅 옵션 사용

  • 디버깅을 위해 -verbose 옵션을 추가하여 클래스 로드 경로를 확인합니다.
  • java -verbose:class com.example.HelloWorld

4.2 IDE 설정 확인

  • IntelliJ, Eclipse 같은 IDE에서:
    • 실행 구성을 확인하고, 메인 클래스와 클래스 경로를 정확히 설정하세요.

5. 결론

Could not find or load main class 오류는 주로 클래스 이름, 클래스 경로, 패키지 구조, main 메서드 설정 오류에서 발생합니다. 올바른 클래스 이름과 경로를 지정하고, main 메서드를 확인하면 문제를 해결할 수 있습니다.

 

저작자표시 비영리 변경금지 (새창열림)
  1. 1. Could not find or load main class란?
  2. 2. 주요 원인
  3. 2.1 클래스 이름 오류
  4. 2.2 잘못된 클래스 경로 설정
  5. 2.3 패키지 선언 및 디렉토리 구조 불일치
  6. 2.4 main 메서드 누락
  7. 2.5 빌드 파일 문제
  8. 3. 해결 방법
  9. 3.1 클래스 이름 확인
  10. 3.2 클래스 경로 설정
  11. 3.3 패키지 구조 확인
  12. 3.4 main 메서드 추가
  13. 3.5 JAR 파일 실행 설정
  14. 4. 추가 팁
  15. 4.1 디버깅 옵션 사용
  16. 4.2 IDE 설정 확인
  17. 5. 결론
'Java' 카테고리의 다른 글
  • [Java] Map을 값(Value) 기준으로 정렬하는 방법
  • [Java] Maven을 사용하여 의존성을 포함한 실행 가능한 JAR 파일 만들기
  • [Java] 최신 JSP 2 사용하기: Java에서 JSP 쓰지 않기
  • [Java] JSON 파싱 방법: Java에서 JSON 데이터를 효율적으로 처리하기
민호이
민호이
민호이
ChungCODE
민호이
전체
오늘
어제
  • Categories (128)
    • 스포츠 (6)
    • 인공지능 (5)
    • 주식 (6)
      • 경제 주식 전망 (5)
      • ETF (9)
    • CSAPP (4)
      • Lab Session (4)
      • Concepts (0)
    • C (19)
    • Java (24)
    • Rust (44)
      • Concepts (27)
      • Libraries (17)
    • PS (2)
    • 국내 소식 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • 코드업
  • 최대공약수
  • 수학
  • 최소공배수
  • C
  • 유클리드 호제법
  • c++

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.v4.2.1
민호이
[Java] 'Could not find or load main class' 오류 해결 방법 총정리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.