rJavaが原因でRにパッケージをロードしようとするときの問題


93

Rでrequire(xlsx)パッケージをロードするために入力するとxlsx、次のメッセージが表示されます。

> require(xlsx)
Loading required package: xlsx
Loading required package: xlsxjars
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
Failed with error:  ‘package ‘rJava’ could not be loaded’

また、rJavaパッケージを手動でロードしようとしましたが、次のエラーメッセージが表示されました。

require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.

問題を解決する方法について何か提案はありますか?


4
インストールしてみてくださいrJava... これ
agstudy

6
どのプラットフォーム?Windowsの場合、これが役立つ場合があります。
dardisco 2013年

また、問題により、.xlsxファイルを読み取ろうとするのではなく、最初に.xlsxファイルをcsvに保存してから、read.csvを使用できます
generic_user

2
最後にリストされた回答(この時点では16票)で修正された場合は、回答を承認済みとしてマークしてください。
Slak、2015年

私もこの問題に遭遇しましたが、Hadley Wickhamのreadxlパッケージを使用してそれを迂回しました。ここに関する詳細な議論-rにlibraryxlsxをインストールして代替を探すことができない
Ben

回答:


123

その理由は、64ビット OSおよびRバージョンを使用しているが、同じアーキテクチャーでJavaがインストールされていないという事実に関連している可能性があります。このページからJava 64ビットをダウンロードする必要があります:https : //www.java.com/en/download/manual.jsp

その後、xlsxパッケージをリロードしてみてください。Rを再起動する必要はありません。


2
(+1)Rのメッセージがこれを問題として完全に指し示しているかどうかはわかりませんが、私にとってはそうでした。確かに、あなたはチェックすることができます。64ビットOSおよび64ビットRを実行している場合は、コマンドラインを実行してを試してくださいjava -d64 version。64ビットJavaを使用している場合は、システムパスの問題である可能性があります。
AdamO 2016年

3
もしかしてjava -d64 -version
ハリソン

8

同様に、JAVA_HOMEを設定することが問題でした。私は最初にRで疲れました。

Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")

そして、それが実際に機能したときに、新しいシステム変数を追加して、システムのプロパティ->詳細->環境変数に設定しました。その後、R / RStudioを再起動し、すべてが機能しました。


7

これは、Javaバージョン(32ビット/ 64ビット)のいずれかがコンピューターにないためです。両方のJdksをインストールして、コードを実行してください。
Jdksをインストールした後、Rを開いてコードを入力します

system("java -version")

これにより、インストールされているJdkのバージョンがわかります。次に、rJavaパッケージをロードしてみます。これでうまくいきました。


4

同様の問題がありました。依存パッケージ「rJava」が原因です。この問題は、Rを別のを使用するようにリダイレクトすることで解決できますJAVA_HOME

if(Sys.getenv("JAVA_HOME")!=""){
    Sys.setenv(JAVA_HOME="")
}
library(rJava)

これでうまくいきました。


4

RStudioでこのエラーが発生した場合は、上記のローレンの環境コードを使用して、ツール、グローバルオプションでRバージョンを32ビットバージョンに変更してください。新しいバージョンを使用している場合は、32ビットと64ビットの両方のRオプションが必要です。これはRの再起動を必要とし、メモリオプションを制限します。ただし、64ビットバージョンのjreをインストールする必要はありません。



2

私は同じ問題を抱えていたので、解決策を見つけたと思います!

私の修正は、32ビットと64ビットの両方のJRE(Javaランタイム環境)バージョン8アップデート181をインストールすることでした(別のアプリケーションには32ビットが必要ですが、64ビットを単独で再インストールするだけでも問題ありません)。


1

リンクで回答問題が解決しました。

解決する前に、Windows環境にJAVA_HOMEを追加してみました。このエラーは解決しましたが、別の問題が発生しました。上記のリンクのソリューションは、追加の問題を作成せずにこの問題を解決します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.