본문 바로가기

Programming Language/Java & Scala

JVM 버젼별 Scala 하위호환표(JDK Compatibility for scala)

이 포스트는 2020년 2월 18일 기준입니다.

 

Scala는 JVM위에서 돌아가는 언어이며, Scala버젼별로 JVM 버젼의 호환성이 있으므로 아래 표를 기준으로 Scala버젼을 운영해야합니다. 

https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html

Scala 공식홈페이지에 따르면, Java 8 이상에서 scala를 compile하는 것을 권장합니다. JVM은 하위호환성이 있으므로, Compile은 옛날버젼으로 하되, 실제 code를 Running할때는 최신버젼의 JVM버젼을 사용하는게 일반적입니다. 

 

Java 8으로 compile된 Scala code는 JVM 8 이상에서 정상적으로 돌아야만 합니다. 만약 Java8으로 compile했음에도 불구하고 이슈가 생긴다면 이는 긴급수정 사항입니다. 

 

일부 오래된 JVM버젼은 scala code의 compile과 run이 정상적으로 작동함을 보장할 수 없습니다. 예를들어 2.12를 compile하고 run하기 위한 최저 JVM 버젼은 8 입니다.(이전엔 6이였음) JVM 8로 격상한 이유는 Java 8에서 labda와 default method 등 신규 feature를 사용하여 얻는 이득이 많기 때문입니다. 또한 2.13.x 버젼의 스칼라 코드도 Java 8 이상에서 정상동작합니다.

 

Scala 2.13.0, 2.12.8, 2.11.12의 JDK 11 호환성은 아직 불완전합니다. JDK 11의 호환성을 맞추기 위해 작업중이며 이는 Support JDK 11(링크)에서 확인할 수 있습니다.

반응형