E111: Bad Symbolic Reference
E111: Bad Symbolic Reference (잘못된 심볼 참조)
컴파일된 클래스파일이 현재 클래스패스에서 찾을 수 없는 심볼을 참조할 때 나오는 에러예요.
본문
컴파일러 메시지가 알려주는 내용은 이렇게 정리돼요.
- 클래스파일의 시그니처가 사용할 수 없는 심볼을 참조하고 있어요
- 그 심볼이 클래스패스에서 아예 빠져 있을 수 있어요
- 클래스패스 버전이 클래스파일을 컴파일할 당시의 버전과 호환되지 않을 수 있어요
이 에러는 주로 이런 상황에서 발생해요.
- 클래스패스에서 의존성이 빠져 있을 때
- 의존성 버전이 다른 컴파일된 코드와 호환되지 않을 때
- 필요한 클래스파일이 삭제되었거나 손상되었을 때
- 라이브러리 버전 사이의 바이너리 호환성이 깨졌을 때
단순 소스 코드로 이 에러를 재현하려면 특정 클래스패스 조건(누락되거나 호환되지 않는 클래스파일)이 필요해서 어려워요.
해결하려면:
- 누락된 의존성을 클래스패스에 추가해요
- 모든 의존성 버전이 호환되게 맞춰요
- 프로젝트를 클린하고 다시 빌드해요
- 필요한 모든 JAR 파일이 존재하고 손상되지 않았는지 확인해요