파란하늘의 지식창고
반응형

STS 4.12.1이 나와서 사용하려고 보니 프로젝트 빌드 시 java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module... 와 같은 오류가 발생한다.

해당 에러는 lombok을 사용하는 경우 발생하며 발생하는 이유는 JDK 16에서 강화된 보안정책 때문에 private 접근자에 대한 강제 접근 처리가 되지 않으면서 해당 방식의 코드를 사용한 lombok을 사용할 경우 발생되는 오류이다.

https://openjdk.java.net/jeps/396

 

JEP 396: Strongly Encapsulate JDK Internals by Default

JEP 396: Strongly Encapsulate JDK Internals by Default AuthorsAlex Buckley, Mark ReinholdOwnerMark ReinholdTypeFeatureScopeSEStatusClosed / DeliveredRelease16Discussionjigsaw dash dev at openjdk dot java dot netEffortSDurationSRelates toJEP 403: Strong

openjdk.java.net

 

https://github.com/projectlombok/lombok/issues/2810

 

[BUG] Unhandled event loop exception in Eclipse · Issue #2810 · projectlombok/lombok

After updating Eclipse to use Java 16, building projects gives an error. Install Lombok 1.18.20 in Eclipse, either through the update site or the jar (I tried both). If you used the update site, yo...

github.com

현재 lombok의 최신 버전은 1.18.22이며 이 버전까지는 해당 오류를 막기 위해서는 ini 파일에 다음과 같은 설정을 추가해야 한다.

--illegal-access=warn
--add-opens java.base/java.lang=ALL-UNNAMED

lombok 다음 버전에서 관련 코드가 변경되면 추가한 두 줄은 삭제해도 될 것으로 보인다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요