RのレジストリエラーからJAVA_HOMEを特定できない問題を修正
今日は、R プログラミングを使用しているときに JAVA_HOME をレジストリから判別できません
というエラーを再現します。 次に、このエラーが何を意味するのかを理解して、解決策につながる考えられる理由を見つけます。
R の エラー: JAVA_HOME をレジストリから判別できません
を修正する
コード例:
> # install xlsx package
> install.packages("xlsx")
> # load xlsx package
> library("xlsx")
上記のコード例では、R プログラミングを使用して JAVA_HOME をレジストリから判別できません
というエラーを再現しています。 install.packages("xlsx")
を使用してパッケージをインストールし、library("xlsx")
を使用してパッケージをロードしますが、次のエラーが発生します。
エラーの説明:
このエラーは、Java の場所を R に通知する Resitry
にエントリがないことを意味します。 問題は、なぜこのエラーに直面しているのかということです。
xlsx
パッケージが原因でこのエラーが発生していますが、そうではありません。 rJava
パッケージのおかげです。
どうやって? xlsx
パッケージをインストールしようとすると、R も rJava
パッケージをインストールしようとするためです。
もう 1つのポイントは、R が rJava
パッケージをインストールしようとすると、なぜ JAVA_HOME をレジストリから判別できません
エラーが発生するのでしょうか? このエラーの理由を以下に示します。
-
R と Java の互換性のないバージョンがあり、連携できません。 たとえば、R は 64 ビット バージョンですが、Java は 32 ビットです。
次のコードを実行して、マシンにある Java と R のバージョンを確認できます。
バージョンを確認するコード例:
> # Check R Version > Sys.getenv("R_ARCH") > # Check Java Version > system("java -version")
-
マシンに Java がインストールされていない場合、または
Registry
が破損している場合にも、このエラーが発生します。 -
Java の複数のバージョン (32 ビットと 64 ビットの両方) がインストールされている場合があります。 したがって、ここでは、R プログラミングで Java を使用するための適切なバージョンの Java を指していることを確認する必要があります。
-
別の理由として、64 ビット バージョンのオペレーティング システムと R を使用しているが、同じアーキテクチャの Java を使用していないことが考えられます。
それで、それを修正する方法は? 現在マシンで実行されているRバージョンと互換性のあるJavaバージョンをインストールすることで、それを取り除くことができます.
R が 32 ビットまたは 64 ビットの場合は、Java 32 ビットまたは 64 ビットをそれぞれインストールします。
別のバージョンの Java が必要な場合は、Java を 手動でダウンロードしてインストール する必要があることを忘れないでください。 ダウンロード ページでは、デフォルトで 32 ビット バージョンの Java が使用されます。
次に、Java をインストールした後、R とブラウザーを再起動することを忘れないでください。 私たちの場合、Java 8 Update 202 64 ビット版をインストールしたことで、問題は解決しました。