web-dev-qa-db-ja.com

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

Rにパッケージxlsxをロードするためにrequire(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.

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

74
Pritam Kar

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

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

104
Gianluca

Java_HOMEを設定するというのが、私にとってうまくいったのと同様の問題を抱えていました。私は最初にRで疲れました:

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

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

8
Lauren Fitch

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

system("Java -version")

これにより、インストールされているJdkのバージョンが表示されます。次に、rJavaパッケージをロードしてみてください。これは私のために働いた。

6
Edwin Vivek N

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

3
Odysseus Ithaca

同様の問題がありました。依存パッケージ 'rJava'が原因です。この問題は、異なるJava_HOMEを使用するようにRをリダイレクトすることで克服できます。

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

これは私のために働いた。

link で回答すると、問題が解決しました。

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

1
Orhan Celik

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

私の修正は、32ビットと64ビットの両方のJRE(Java Runtime Environment)バージョン8アップデート181をインストールすることでした(別のアプリケーションには32ビットが必要ですが、修正は64ビットを単独で再インストールするだけで十分です)。

0
Tamas

MacOSでこの問題がある場合、ここでは簡単な方法はありません:(特に、R3.4を使用する場合。私はすでにそこにいます;)

R 3.4、rJava、macOS、さらに多くの混乱;)

R3.3の場合、少し簡単ではありません(R3.3は異なるコンパイラを使用してコンパイルされました)。

R、Java、rJava、およびmacOSアドベンチャー

0
Oo.oO

使用できる代替パッケージはreadxlです。このパッケージは外部依存関係を必要としません。

0