rJavaのロード時のエラーへの対処

注） Windowsでの対処法を記載しています。Macとは手順が異なる場合があるので注意してください。

RでJavaを動かせる**rJava**というパッケージがあります。テキストデータの処理などで使うことがありました。便利なパッケージですが、エラーメッセージが出て使えないという話をよく頂きます。今回は、その対象法について説明します。

# エラーについて
インストールを行ったあとに、libraryでrJavaをロードします。
```r
# install.packages('rJava')
library(rJava)
```
しかし、以下のエラーメッセージが表示される場合があります。使っているOSでエラーメッセージが違うみたいですね。
- Windows
```
Error: package or namespace load failed for ‘rJava’:   .onLoad は loadNamespace()（'rJava' に対する）の中で失敗しました、詳細は:    call: fun(libname, pkgname)    error: JAVA_HOME cannot be determined from the Registry
```
- Mac
```
Unable to find any JVMs matching version "(null)". No Java runtime present, try --request to install.  エラー: package or namespace load failed for ‘rJava’:   .onLoad は loadNamespace()（'rJava' に対する）の中で失敗しました、詳細は:    call: fun(libname, pkgname)    error: JVM could not be found   追加情報:  警告メッセージ:  1:  system("/usr/libexec/java_home", intern = TRUE) で:     命令 '/usr/libexec/java_home' の実行は状態 1 を持ちました  2:  fun(libname, pkgname) で:    Cannot find JVM library 'NA/lib/server/libjvm.dylib' Install Java and/or check JAVA_HOME (if in doubt, do NOT set it, it will be detected)
```

# 原因
## 1: パソコンにJavaが入っていない
そもそもJavaがRを使っているパソコンに入ってなければrJavaを動かせません。試しに、Javaを僕のパソコンから削除し、rJavaを読み込んだところ、上記のエラーメッセージが出現しました。
## 2: RとJavaの設定があっていない
Javaのアップデートを行った際に発生する場合があるようです。こちらはすでに解説記事がありましたので、解決方法に関しては、こちらをご覧ください[[1]](https://qiita.com/kukulkan/items/63395ae675173984f751)

# 解決方法
## 原因1への対処： Javaをパソコンにインストールする（Javaがパソコンに入っていない方）
以下の手順でパソコンにJavaをインストールしましょう[[2]](https://rightcode.co.jp/blog/become-engineer/java-install)。

1. パソコンのビット数を調べる。
調べ方↓
[Windowsのマークのボタン] → [システム] → [バージョン情報]
32bitか64bitかを確認する。

2. Javaのインストーラーをダウンロード
JavaのHPを開き（[https://www.oracle.com/jp/java/](https://www.oracle.com/jp/java/)）、[Javaをダウンロードする]をクリック。[x64 Installer]をダウンロード（僕のパソコンは64bitですので、x64を選びます）。
*Javaをインストール!と言っていますが、厳密には、Javaの開発環境である(Java Development Kitをダウンロードしています。ですので、jdkという略称が実行ファイル名についています

3. Oracle プロファイルへのサインイン
Javaのダウンロードには「Oracle プロファイル」を作成する必要があるようです。作成したことがない場合、サインイン画面に自動で移動するようです。作成していない方は作成しましょう。

4. Javaをインストール
ダウンロードした実行ファイル（.exe）を開きましょう。

5. 忘れない！環境変数の設定
これ以降の作業までやらないとJavaを動かせないようです。Windowsの検索画面（虫眼鏡のマーク）で[システム環境変数の編集]と入力し、設定画面を開きます。下側の[環境変数(N)...]をクリック。次のポップアップの[新規(N)...]を押すと、以下の画面が表示されるので、必要な情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/9396fa43-ca43-d50a-d04a-7b06ec008b5e.png)

```
変数名: 
JAVA_HOME
変数値：
JAVAフォルダの中にあるjdkから始まるフォルダ(パソコンにより違う場合大)
```

**変数値**ですが、Windows (C:)をクリックし（エクスプローラー（書類入れのマーク）を開いて出てくる左側の列から探してみてください）、その中のProgram Filesをクリック、そしてその中のJavaをクリックして、さらに、その中に入っているjdk- 19（19のところはバージョンによって異なる）をクリックしてください。
その後、表示画面の上部をクリックすると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/03cb2b6b-78a4-23b6-47c5-41b432fb88c5.png)

変数値へのパスが表示されます（↓）。これをコピーして、変数値のところに張り付ければOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/e261b5d6-dd2c-ab53-221f-a6be6a0c4b48.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/1f9eb09c-895e-3e88-408f-7cf1e1e4204a.png)


入力して[OK]を押すと、無事環境変数が設定されていますね。まだ画面を閉じないでください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/ab3d5a39-9a5e-bed6-42f2-b4d44d8de84f.png)

6.　忘れない！Pathの設定
次に、[Path]を選択し、[編集(E)...]をクリックします。
![スクリーンショット 2023-01-19 132243.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/941c2c81-3332-8874-1603-698ad9dbae83.png)


[新規(N)]をクリックし、以下を入力してください。
```
%JAVA_HOME%¥bin
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/7e5bb96d-4f0a-eb45-9e2b-54ca9be265d3.png)

入力が終わったら、[OK]　→ [OK]で設定画面を閉じましょう。

7.　忘れない！パソコンを再起動
変更を反映させます。

8.　環境変数が通っているかの確認
虫眼鏡のマークを押して、[コマンドプロンプト]と入力します。そうすると以下の画面が立ち上がります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/4e6d5896-a02a-1f0c-fcd3-a227b09a21b7.png)

そちらの画面で以下のコードを入力してください。
```
java -version
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/76f6698a-a1e0-956e-f846-0a7135dba952.png)

[Enter]を押して、以下のようなJavaのバージョンが表示されれば（バージョンによって表示内容は違います）インストール成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/2a11b143-c868-41dd-674e-72c3290a7e44.png)

# 結果
RStudioに戻って、再度rJavaをロードしたところ、無事ロードできました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/e2664b82-25c2-200a-ef04-0a3bd7f3cf0c.png)


# 最後に
この記事はWindows向けに書きましたが、Windows、MacなどOSに関わらず、JavaをパソコンにインストールすればrJavaを使用できるようになると思います。

# 参考にしたページ
[1] [R エラーノート](https://qiita.com/kukulkan/items/63395ae675173984f751)
[2] [【初心者向け】Windows10にJavaをインストールする方法](https://rightcode.co.jp/blog/become-engineer/java-install)