動機
久しぶりに書いたと思ったらまたPATHの話です。
Mac向け。Winの人はごめんね。
学校でR環境下でh2oという深層学習ライブラリを使えという課題が出た際に私だけjdkのバージョンが引っかかって課題が進まなかったのを解決した怒りの手記。
解決方法
R環境下で使うjdkのバージョンを下げる。以下、具体的手法。
今Javaは何がいくつ入ってんの?
Rコンソールではなくターミナルを起動し、
/usr/libexec/java_home -V
と打ち込んで調べよう。入っているJavaのバージョンが全て出てきます。こういう感じです。
h2oライブラリが使えるjdkを持ってる?
h2oライブラリはjdkと協働します。このとき、jdkのバージョンが7から12の間じゃないとテコでも動かないようです。
最近のjdkのバージョンは13だよ!!!!!!!!
対象のバージョンのjdkを持っていない人は手に入れよう
Javaのバージョンを確認したときに対象バージョンが入っていなかった人はダウンロード&インストールしよう。公式サイトから手に入るぞ(一番上で目立っている13ではなく中段にあるLTSの11をDLしよう)。
手に入れたら念のため、再びターミナルで
/usr/libexec/java_home -V
でちゃんと入ったか見てみてください。
jdkのバージョンを下げよう
ここめちゃくちゃ注意してほしいんですが、ターミナルでJavaプログラムをいじるときに使うjdkと、R環境が参照するjdkのpathは違います。
以下の方法を使うと、普通に使うときのjdkのバージョンは13のまま、R環境下で用いるjdkのバージョンは11になります。やったね。
FinderでRenvironファイルを検索
RenvironファイルはR環境における.bash_programみたいなもののようです。R (とRStudio)を導入していればこのファイルがあるはず。これを適当なエディタで開いて、一番下にでも
JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
と書き込みましょう。
完了!!
以上です。これでRが参照するjdkがダウングレードしました。
Rコンソールで
library(“h2o”)
localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE, nthreads = -1)
とでも打ってみてh2oを使ってみましょう。
なんかh2o自体のバージョンが古いとかなんとか言われますが、使用自体はできます。
お疲れ様でした。
追記
現在配布されているLTS11は11.0.2ではなく11.0.6のようです。手に入れたバージョンをしっかり確認して、都度PATHを変更して使ってください。