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 - 그 유명한 널포인트 지옥에 입장합니다!