Problemi durante il tentativo di caricare un pacchetto in R a causa di rJava


93

Quando require(xlsx)digito per caricare il pacchetto xlsxin R, vengono visualizzati i seguenti messaggi:

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

Ho anche provato a caricare il rJavapacchetto manualmente ma ho ricevuto questo messaggio di errore:

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.

Hai qualche suggerimento su come risolvere il problema?


4
Prova ad installare rJava... Leggi questo
agstudy

6
Quale piattaforma? Se Windows, questo potrebbe essere utile.
dardisco

inoltre, il tuo problema ti consente di salvare prima il tuo file .xlsx in un csv e poi di usare read.csv, piuttosto che provare a leggere nel file .xlsx
generic_user

2
Se l'ultima risposta elencata (16 voti a questo punto) l'ha risolta per te, contrassegna la risposta come accettata.
Slak

Mi sono imbattuto anche in questo problema, ma l'ho deviato usando il readxlpacchetto di Hadley Wickham . Ulteriori discussioni su questo argomento - Impossibile installare libraryxlsx in r e cercare un'alternativa
Ben

Risposte:


124

Il motivo è probabilmente legato al fatto che stai utilizzando un sistema operativo a 64 bit e una versione R ma non hai Java installato con la stessa architettura. Quello che devi fare è scaricare Java a 64 bit da questa pagina: https://www.java.com/en/download/manual.jsp

Dopodiché prova a ricaricare il xlsxpacchetto. Non dovresti aver bisogno di riavviare R.


2
(+1) Non sono sicuro che il messaggio di R indichi completamente questo come il problema, ma per me è stato così! Per essere sicuro, puoi controllare. Se utilizzi un sistema operativo a 64 bit e 64 bit R, esegui la riga di comando e prova java -d64 version. Se utilizzi Java a 64 bit, potrebbe trattarsi di un problema con il percorso di sistema.
AdamO

3
Volevi dire java -d64 -version?
Harrison

8

Ho avuto un problema simile, ciò che ha funzionato per me è stato impostare JAVA_HOME. L'ho stancato prima in R:

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

E quando ha effettivamente funzionato l'ho impostato in Proprietà di sistema -> Avanzate -> Variabili d'ambiente aggiungendo una nuova variabile di sistema. Ho quindi riavviato R / RStudio e tutto ha funzionato.


7

È perché una delle versioni di Java (32 bit / 64 bit) non è presente sul tuo computer. Prova a installare entrambi i JDK ed esegui il codice.
Dopo aver installato Jdks apri R e digita il codice

system("java -version")

Questo ti darà la versione di Jdk installata. Quindi prova a caricare il pacchetto rJava. Questo ha funzionato per me.


4

Ho avuto un problema simile. È causato dal pacchetto dipendente "rJava". Questo problema può essere superato reindirizzando la R per utilizzare un diverso JAVA_HOME.

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

Questo ha funzionato per me.


4

Se hai questo errore in RStudio, usa il codice ambientale di Lauren sopra e cambia la tua versione R nella versione a 32 bit in Strumenti, Opzioni globali. Dovrebbero esserci entrambe le opzioni R a 32 bit e 64 bit se si dispone di una versione più recente. Ciò richiederà un riavvio di R e limiterà le opzioni di memoria. Tuttavia, l'installazione della versione a 64 bit di jre non sarà richiesta.


2

Un pacchetto alternativo che puoi usare è readxl . Questo pacchetto non richiede dipendenze esterne.


2

Penso di aver trovato la risoluzione perché avevo lo stesso problema!

La mia soluzione era installare l'aggiornamento 181 di JRE (Java Runtime Environment) versione 8 a 32 bit e 64 bit (ho bisogno di 32 bit per un'altra applicazione, ma la soluzione può essere semplicemente reinstallare 64 bit da sola).


1

La risposta nel link ha risolto il mio problema.

Prima della risoluzione, ho provato ad aggiungere JAVA_HOME agli ambienti Windows. Ha risolto questo errore ma ha creato un altro problema. La soluzione nel collegamento sopra risolve questo problema senza creare problemi aggiuntivi.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.