이 포스트는 2020년 2월 18일 기준입니다.
Scala는 JVM위에서 돌아가는 언어이며, Scala버젼별로 JVM 버젼의 호환성이 있으므로 아래 표를 기준으로 Scala버젼을 운영해야합니다.
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(링크)에서 확인할 수 있습니다.
반응형
'Programming Language > Java & Scala' 카테고리의 다른 글
Java GC 종류별 도식화 (1) | 2020.03.08 |
---|---|
Java PermGen의 역사 (1) | 2020.03.07 |
스레드풀(Thread Pool)이란? 종류, 설명 (2) | 2020.02.19 |
DateTimeFormatter에서 년도표시에 yyyy대신 uuuu를 사용해야하는 이유? (0) | 2019.11.21 |
Spring boot Resttemplate 사용시 HttpComponentsClientHttpRequestFactory 옵션 설명(setConnectTimeout, setConnectionRequestTimeout, setReadTimeout) (393) | 2019.06.28 |
Resttemplate으로 PATCH 사용시 에러나는 경우 해결방법 - Invalid HTTP method: PATCH; nested exception is java.net.ProtocolException: Invalid HTTP method: PATCH (368) | 2019.06.27 |