2013-06-29 15 views
58

zu laden versuchen Wenn ich require(xlsx) um Art ist das Paket xlsx in R, die folgenden Meldungen zu laden gezeigt:Probleme, wenn ein Paket in R aufgrund rjava

> 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’ 

Ich habe auch die laden versucht, rJava Paket manuell bekam aber diese Fehlermeldung:

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. 

haben Sie irgendwelche Vorschläge, wie das Problem zu lösen?

+3

Versuchen zu installieren 'rJava' ... Read [diese] (http://stackoverflow.com/questions/7019912/using-the-rjava-package-on-win7-64-bit- mit-r/7604469 # 7604469) – agstudy

+3

Welche Plattform? Wenn Windows dann [dies] (http://www.r-statistics.com/2012/08/how-to-load-the-rjava-package-after-the-error-java_home-cannot-de-determined-von- -the-registry /) kann hilfreich sein. – dardisco

+0

auch, Ihr Problem können Sie zuerst speichern Ihre .xlsx-Datei zu einem CSV und dann mit read.csv, anstatt zu versuchen, in der .xlsx Datei lesen –

Antwort

76

Der Grund ist wahrscheinlich mit der Tatsache verbunden, dass Sie eine 64-bit OS und R-Version verwenden, aber Java mit der gleichen Architektur nicht installiert haben. Was Sie tun müssen, ist Java 64-Bit von dieser Seite herunterladen: https://www.java.com/en/download/manual.jsp

Danach versuchen Sie einfach, das xlsx Paket zu laden. Sie sollten R nicht erneut starten müssen.

+0

(+1) Ich bin mir nicht sicher, ob R's Nachricht * komplett * auf dieses Problem hinweist, aber das war bei mir der Fall! Um sicher zu sein, können Sie überprüfen. Wenn Sie 64-Bit-Betriebssystem und 64-Bit-R ausführen, führen Sie die Befehlszeile aus und versuchen Sie 'java -d64 version'. Wenn Sie mit 64-Bit-Java arbeiten, könnte dies ein Systempfadproblem sein. – AdamO

+1

Meinten Sie 'java -d64 -version'? – Harrison

2

Ich hatte ein ähnliches Problem. Ursache ist das abhängige Paket 'rJava'. Dieses Problem kann überwunden werden, indem das R anders ausgerichtet wird, um ein anderes JAVA_HOME zu verwenden.

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

Das funktionierte für mich.

6

Es ist weil eine der Java-Versionen (32 Bit/64 Bit) von Ihrem Computer fehlt. Versuchen Sie, beide Jdks zu installieren und den Code auszuführen.
Nach dem JDKs offen R Installation und den Code

system("java -version") 

Dies wird Ihnen die Version von JDK installiert eingeben. Versuchen Sie dann, das rJava-Paket zu laden. Das hat für mich funktioniert.

0

Antwort in link löste mein Problem.

Vor der Auflösung habe ich versucht, JAVA_HOME zu Windows-Umgebungen hinzuzufügen. Es löste diesen Fehler, aber verursachte ein anderes Problem. Die Lösung in obigem Link löst dieses Problem, ohne zusätzliche Probleme zu verursachen.

5

Ich hatte ein ähnliches Problem, was für mich funktionierte, war JAVA_HOME zu setzen. Ich müde es zuerst in R:

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

Und wenn es tatsächlich funktioniert Ich habe es in den Systemeigenschaften -> Erweitert -> Umgebungsvariablen durch eine neue Systemvariable hinzufügen. Ich habe dann R/RStudio neu gestartet und alles hat funktioniert.

0

Ein alternatives Paket, das Sie verwenden können, ist readxl. Dieses Paket benötigt keine externen Abhängigkeiten.

1

Wenn Sie diesen Fehler in RStudio haben, verwenden Sie den obigen Umgebungscode von Lauren und ändern Sie Ihre R-Version in die 32-Bit-Version unter Extras, Globale Optionen. Es sollte sowohl 32bit als auch 64bit R Optionen geben, wenn Sie eine neuere Version haben. Dies erfordert einen Neustart von R und begrenzt die Speicheroptionen. Die Installation der 64-Bit-Version des JRE wird jedoch nicht benötigt.