fpinscala 関数型デザイン&プログラミングの./sbtに失敗した

環境:macOS High Sierra/10.13.6

準備:以下の記事

kichijojipm.hatenablog.com

この記事の通りに進めて行けばだいたいできるようになるはずなんですが、自分の場合

$ ./sbt 

を実行するとjava.lang.NullPointerExceptionが出て怒られました。

 使ってるjavaのバージョンを確認すると、

$ java -version

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

openjdkの11を入れてたみたいです。

他のバージョンが入ってないか確認

$ /usr/libexec/java_home -V

11.0.2, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home

もうちょい表示されると思いますが割愛。

とりあえず11しか入ってないみたいです。

 

java8なら動くかもと思い8のopenjkdのadoptopenjdk8を入れることにしました。

↓参考

qiita.com  

$ brew cask install adoptopenjdk8 // 入ってなければopenjdk8のインストール

$ /usr/libexec/java_home -V // インストールされてるバージョンの確認

Matching Java Virtual Machines (2):Matching Java Virtual Machines (2):    11.0.2, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home    1.8.0_222, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home

$ export JAVA_HOME=`/usr/libexec/java_home -v "1.8"` // 使うjavaの切り替え

$ PATH=${JAVA_HOME}/bin:${PATH} // pathに追加

$ java -version // 現在使ってるjavaのバージョン

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

無事に8の方も入って、切り替えもうまくいってるみたいですね

ちなみにjava_homeの設定やmacにおけるjavaのバージョン切り替えも詳しくないので雰囲気でかいてる部分が多いです 細かいところはわからないのでご容赦ください

これで./sbtを打ったら動きました