LoginSignup
2
3

More than 3 years have passed since last update.

RやRStudioでJava (jdk)のバージョンが高すぎてh2oライブラリが使えなかったのを解決した話

Last updated at Posted at 2020-01-15

動機

久しぶりに書いたと思ったらまたPATHの話です。
Mac向け。Winの人はごめんね。
学校でR環境下でh2oという深層学習ライブラリを使えという課題が出た際に私だけjdkのバージョンが引っかかって課題が進まなかったのを解決した怒りの手記。

解決方法

R環境下で使うjdkのバージョンを下げる。以下、具体的手法。

今Javaは何がいくつ入ってんの?

Rコンソールではなくターミナルを起動し、

/usr/libexec/java_home -V

と打ち込んで調べよう。入っているJavaのバージョンが全て出てきます。こういう感じです。
スクリーンショット 2020-01-16 2.32.45.png

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を変更して使ってください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3