InteliJ Gradle Build error : java.lang.NoSuchFieldError 해결

이민호·2024년 5월 13일
0

스프링 입문하면서 강의를 따라가던 도중 막혔다.
프로젝트에 lombok을 적용하는 부분이었는데,

Gradle의 빌드 실행 중

java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.
	JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

라는 에러 메세지와 함께 내 시간도 멈춰버렸다.
여러 검색결과,

  • JDK의 버전을 21 밑으로 버전다운
  • lombok의 버전을 1.18.30 이상 버전업

이 두가지 방법이 있었는데, lombok의 버전업은 설치파일에서 inteliJ 실행파일을 찾지 못해서 실패.
JDK의 버전 변경은

  • 파일 > 프로젝트 구조 > 프로젝트 설정 > 프로젝트 > SDK



추천받은 대로 17 버전으로 변경하고 재시작을 몇번이고 해봤는데,

계속해서 마중나오는 에러메세지.

그러던 와중 초반 프로젝트 생성 시에 Gradle의 JDK 버전 설정이 있지 않았나? 하는 생각이 1시간의 고민 끝자락에서 번뜩.

  • 설정 > 빌드, 실행, 배포 > 빌드도구 > Gradle > Gradle 프로젝트 > Gradle JVM


드디어 사라진 에러메세지.
감동이다.

요약

lombok 관련해서

  • java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.
    JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
    라는 에러메세지를 만나면,
    프로젝트의 JDK 버전을 21 밑으로, Gradle의 JVM 버전도 21 밑으로 내리자.
profile
둘뺌

0개의 댓글