관리자

jdk-version : 13

OS : macOS

installing sbt on macOS : https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Mac.html

 

문제 :

global에서 sbt 1.3.x 버전은 잘 실행되나,

build.sbt에서 sbt 버전이 1.2.8인 경우,

sbt가 실행조차 되지 않고 아래와 같은 에러가 난다.

java.io.ioerror: java.lang.runtimeexception: /packages cannot be represented as URI

 

build.sbt에서 sbt 버전을 1.3.7로 수정했더니, plugin이 1.3.x과 호환이 안되서 에러가 난다 ㅠㅠㅠ

결론적으로는 jdk-version이 안맞는 문제였다.

 

사실 sbt는 jdk 13과 호환이 된다. 하지만 sbt 1.3.x는 호환이 되나 1.2.x는 안되는 것 같다...

documenation에서 호환된다는 말만 보고 가볍게 넘어갔었는데 여기에 문제가 있었다...

구글링해도 검색 결과가 없는데, 검색할 수록 내가 설정을 잘못했다기보단 프로그램/라이브러리 상의 문제 같았다.

이틀 동안 구글링했는데....ㅠㅠㅠ

스펙과 내 환경을 똑바로 확인하자+ documenation이 latest version인지 확인하자.

역시 환경 설정이 제일 어려운 것 같다....

 

해결방안  + 결론 :

jdk 11 을 설치하고 sbt를 jdk 11로 실행하니 sbt도 잘 실행되고 project 빌드에도 이상이 없다!

그 뒤로는 설정이 저장되어서 저절로 jdk 11로 실행된다.

 

jdk 설치 : https://adoptopenjdk.net

 

AdoptOpenJDK

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

adoptopenjdk.net

사용할 수 있는 자바 버전 확인 : sbt -J-showversion

 

원하는 자바 버전으로 실행

sbt -java-home /Library/Java/JavaVirtualMachines/{java-version}/Contents/Home

나의 경우 : sbt -java-home /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

 

 

Issue :

Downloaded sbt 1.3.7 successfully, it runs well globally.

However I couldn't run sbt on project with version 1.2.8.

It throws error below:

java.io.ioerror: java.lang.runtimeexception: /packages cannot be represented as URI

 

Problem was on the version of jdk.

sbt is compatible with jdk 13. It is true for sbt 1.3.x but probably not for 1.2.x.

So I needed jdk 11 to run sbt 1.2.8.

 

Solution :

instsll jdk 11, run sbt with jdk 11.

After the first run, configuration is saved.

No need to set option every time. sbt will automatically use jdk 11 to build :)

 

jdk install : https://adoptopenjdk.net

 

AdoptOpenJDK

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

adoptopenjdk.net

 

show available java optionsbt -J-showversion

 

run sbt with specific jdk otpion:

sbt -java-home /Library/Java/JavaVirtualMachines/{java-version}/Contents/Home

in my case : sbt -java-home /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

 

'언어 > Scala' 카테고리의 다른 글

scala for comprehension, for {...} yield  (0) 2020.02.03
type / class 확인하기  (0) 2020.01.26
for{...} yield 이해하기2  (0) 2020.01.26
for loop/ for() /for{} /for(...) yield  (0) 2020.01.26
원소 숫자 세기 : count number of elements  (0) 2020.01.24

+ Recent posts