🏭 에러공장 5편 - cannot resolve symbol 'main' 오류 해결법

Java에서 프로그램을 실행하려는데 이런 에러가 떴다면?

[ERROR] cannot resolve symbol
  symbol:   method main

main 메서드를 만들었다고 생각했는데 왜 안 될까요? 🤔


🔍 주요 원인 분석

✅ 1. main 메서드 시그니처가 정확하지 않음

Java에서 main 메서드는 딱 이 구조여야 합니다:

public static void main(String[] args) {
    // 실행 코드
}
  • public 빠짐 → 오류 발생
  • static 빠짐 → 오류 발생
  • String 소문자로 작성 → 오류 발생
  • 인자 이름 args는 바꿔도 됨 (타입과 배열 구조만 맞으면 됨)

✅ 2. 메서드 이름 오타

main을 mian(), Main(), start() 등으로 잘못 쓰면 인식되지 않습니다.

정확히 소문자 main이어야 하고, 대소문자 구분이 있습니다.


✅ 3. public class 이름과 파일명이 다름

자바는 파일명과 public class명이 같아야 실행 가능합니다.

// Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello Error Factory");
    }
}

위 구조에서 파일명은 Hello.java여야 합니다.


✅ 4. main 없는 클래스를 실행함

java MyClass처럼 실행했지만 MyClass 안에 main()이 없을 수도 있습니다.

실행 대상 클래스가 정확히 main()을 가지고 있는지 확인하세요.


🧩 요약 정리표

문제 원인 해결법
cannot resolve symbol: method main 시그니처 오류, 오타, 클래스/파일명 불일치 정확한 main 구조로 작성 + 실행 클래스 확인

📌 전체 설명 보기

👉 https://koynalpha-dev.tistory.com/entry/error5


🏷️ 추천 태그

Java, main method, cannot resolve symbol, main 오류, public static void main, 자바 실행 오류, 에러공장, 컴파일 오류


👉 다음 글 예고

에러공장 6편: Exception in thread "main" java.lang.NullPointerException - 그 유명한 널포인트 지옥에 입장합니다!