Probleme beim Laden eines Pakets in R aufgrund von rJava


92

Wenn ich tippe require(xlsx), um das Paket xlsxin R zu laden , werden die folgenden Meldungen angezeigt:

> 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 versucht, das rJavaPaket manuell zu laden , habe aber folgende Fehlermeldung erhalten:

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 Vorschläge zur Lösung des Problems?


3
Versuchen Sie zu installieren rJava... Lesen Sie diese
agstudy

6
Welche Plattform? Wenn Windows dann dies kann hilfreich sein.
Dardisco

Außerdem können Sie aufgrund Ihres Problems zuerst Ihre XLSX-Datei in einer CSV-Datei speichern und dann read.csv verwenden, anstatt zu versuchen, die XLSX-Datei
einzulesen

2
Wenn die zuletzt aufgeführte Antwort (16 Stimmen zu diesem Zeitpunkt) dies für Sie behoben hat, markieren Sie die Antwort bitte als akzeptiert.
Slak

Ich bin auch auf dieses Problem gestoßen, habe es aber mithilfe von Hadley Wickhams readxlPaket umgeleitet . Weitere Diskussion hier - kann libraryxlsx nicht in r installieren und nach einer Alternative suchen
Ben

Antworten:


123

Der Grund hängt wahrscheinlich damit zusammen, dass Sie ein 64-Bit- Betriebssystem und eine R-Version verwenden, Java jedoch nicht mit derselben Architektur installiert ist. Sie müssen Java 64-Bit von dieser Seite herunterladen: https://www.java.com/de/download/manual.jsp

Versuchen Sie danach einfach, das xlsxPaket neu zu laden . Sie sollten R nicht neu starten müssen.


2
(+1) Ich bin mir nicht sicher, ob Rs Nachricht dies vollständig als Problem anzeigt, aber es war bei mir der Fall! Um sicher zu sein, können Sie überprüfen. Wenn Sie ein 64-Bit-Betriebssystem und 64-Bit-R ausführen, führen Sie die Befehlszeile aus und versuchen Sie es java -d64 version. Wenn Sie mit 64-Bit-Java arbeiten, kann dies ein Systempfadproblem sein.
AdamO

3
Meinten Sie java -d64 -version?
Harrison

8

Ich hatte ein ähnliches Problem. Was für mich funktionierte, war das Setzen von JAVA_HOME. Ich habe es zuerst in R müde:

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

Und als es tatsächlich funktionierte, stellte ich es unter Systemeigenschaften -> Erweitert -> Umgebungsvariablen ein, indem ich eine neue Systemvariable hinzufügte. Ich habe dann R / RStudio neu gestartet und alles hat funktioniert.


7

Dies liegt daran, dass eine der Java-Versionen (32 Bit / 64 Bit) auf Ihrem Computer fehlt. Versuchen Sie, beide Jdks zu installieren, und führen Sie den Code aus.
Öffnen Sie nach der Installation der Jdks R und geben Sie den Code ein

system("java -version")

Dadurch erhalten Sie die installierte Version von Jdk. Versuchen Sie dann, das rJava-Paket zu laden. Das hat bei mir funktioniert.


4

Ich hatte ein ähnliches Problem. Es wird durch das abhängige Paket 'rJava' verursacht. Dieses Problem kann überwunden werden, indem das R umgeleitet wird, um ein anderes zu verwenden JAVA_HOME.

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

Das hat bei mir funktioniert.


4

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. Wenn Sie eine neuere Version haben, sollten sowohl 32-Bit- als auch 64-Bit-R-Optionen verfügbar sein. Dies erfordert einen Neustart von R und schränkt Ihre Speicheroptionen ein. Die Installation der 64-Bit-Version des JRE ist jedoch nicht erforderlich.


2

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


2

Ich glaube, ich habe die Lösung gefunden, da ich das gleiche Problem hatte!

Mein Fix bestand darin, sowohl das 32-Bit- als auch das 64-Bit-JRE-Update 181 (Java Runtime Environment), Version 8, zu installieren. (Ich benötige 32-Bit für eine andere Anwendung, aber Ihr Fix kann durchaus darin bestehen, 64-Bit selbst neu zu installieren.)


1

Antwort im Link hat mein Problem behoben.

Vor der Auflösung habe ich versucht, Windows-Umgebungen mit JAVA_HOME zu versehen. Dieser Fehler wurde behoben, es wurde jedoch ein anderes Problem erstellt. Die Lösung im obigen Link behebt dieses Problem, ohne zusätzliche Probleme zu erstellen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.