본문 바로가기

Programming Language/Java & Scala

sbt 실행시 '/modules/java.base/java/lang/String.class' is broken 이슈 해결 방법

sbt를 실행했을 경우 아래와 같은 에러가 발생하였습니다.

 

위 에러는 java13을 사용하기 때문에 발생하는 오류인데요. 공식 sbt download 홈페이지에서도 이 에러에 대해 처리하는 방법에 대해 자세히 나와 있습니다.

⚠️ Homebrew maintainers have added a dependency to JDK 13 because they want to use more brew dependencies (brew#50649). This causes sbt to use JDK 13 even when java available on PATH is JDK 8 or 11. To prevent sbt from running on JDK 13, install jEnv or switch to using SDKMAN.

즉, homebrew를 통해 java를 설치하게 되면 jdk13이 자동설치되게 된다는건데, sbt가 13을 지원하지 못하기 때문에 발생하는 이슈이므로 SDKMAN이나 jEnv와 같은 tool을 사용해서 13을 제거하고 JDK 8 또는 JDK 11을 설치하라고 합니다.

그러므로 기존에 homebrew로 설치된 JDK 13이 있다면 제거해주시고, SDKMAN을 통해 JDK 8 또는 JDK 11을 설치하여 sbt를 재실행해보면 정상동작함을 확인하실 수 있습니다.