E111: Bad Symbolic Reference

E111: Bad Symbolic Reference (잘못된 심볼 참조)

컴파일된 클래스파일이 현재 클래스패스에서 찾을 수 없는 심볼을 참조할 때 나오는 에러예요.

출처: Scala 3 Reference

본문

컴파일러 메시지가 알려주는 내용은 이렇게 정리돼요.

  • 클래스파일의 시그니처가 사용할 수 없는 심볼을 참조하고 있어요
  • 그 심볼이 클래스패스에서 아예 빠져 있을 수 있어요
  • 클래스패스 버전이 클래스파일을 컴파일할 당시의 버전과 호환되지 않을 수 있어요

이 에러는 주로 이런 상황에서 발생해요.

  • 클래스패스에서 의존성이 빠져 있을 때
  • 의존성 버전이 다른 컴파일된 코드와 호환되지 않을 때
  • 필요한 클래스파일이 삭제되었거나 손상되었을 때
  • 라이브러리 버전 사이의 바이너리 호환성이 깨졌을 때

단순 소스 코드로 이 에러를 재현하려면 특정 클래스패스 조건(누락되거나 호환되지 않는 클래스파일)이 필요해서 어려워요.

해결하려면:

  • 누락된 의존성을 클래스패스에 추가해요
  • 모든 의존성 버전이 호환되게 맞춰요
  • 프로젝트를 클린하고 다시 빌드해요
  • 필요한 모든 JAR 파일이 존재하고 손상되지 않았는지 확인해요