2013-06-29 18 views
58

Quando digito require(xlsx) per caricare il pacchetto xlsx in R, i messaggi che seguono:I problemi quando si cerca di caricare un pacchetto in R a causa di 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’ 

Ho anche provato a caricare il rJava pacchetto manualmente, ma ha ottenuto 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. 

avete qualche suggerimento su come risolvere il problema?

+3

tenta di installare 'rJava' ... Leggi [questo] (http://stackoverflow.com/questions/7019912/using-the-rjava-package-on-win7-64-bit- with-r/7604469 # 7604469) – agstudy

+3

Quale piattaforma? Se Windows allora [questo] (http://www.r-statistics.com/2012/08/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from- -the-registry /) potrebbe essere utile. – dardisco

+0

inoltre, il tuo problema ti permette di salvare prima il tuo file .xlsx in un csv e quindi di leggere read.csv, piuttosto che cercare di leggere nel file .xlsx –

risposta

76

Il motivo è probabilmente legato al fatto che si sta usando una versione 64-bit ma non si ha Java installato con la stessa architettura. Quello che devi fare è scaricare Java 64-bit da questa pagina: https://www.java.com/en/download/manual.jsp

Dopo ciò prova a ricaricare il pacchetto xlsx. Non è necessario riavviare R.

+0

(+1) Non sono sicuro che il messaggio di R * completamente * punti a questo problema, ma è stato il mio caso! Per essere sicuro, puoi controllare. Se stai utilizzando un sistema operativo a 64 bit e 64 bit R, esegui la riga di comando e prova 'java -d64 version'. Se si utilizza Java a 64 bit, potrebbe trattarsi di un problema del percorso di sistema. – AdamO

+1

Intendevi 'java -d64 -version'? – Harrison

2

Ho avuto un problema simile. È causato dal pacchetto dipendente 'rJava'. Questo problema può essere risolto 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.

6

È perché una delle versioni Java (32 bit/64 bit) non è presente nel computer. Prova ad installare entrambi i JDK ed esegui il codice.
Dopo aver installato il JDK aperto R e digitare il codice

system("java -version") 

Questo vi darà la versione JDK installato. Quindi prova a caricare il pacchetto rJava. Questo ha funzionato per me.

0

La risposta in link ha risolto il problema.

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

5

Ho avuto un problema simile a quello che ha funzionato per me era impostare JAVA_HOME. Mi si stanca prima in R:

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

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

0

Un pacchetto alternativo che è possibile utilizzare è readxl. Questo pacchetto non richiede dipendenze esterne.

1

Se si riscontra questo errore in RStudio, utilizzare il codice ambientale di Lauren riportato sopra e modificare la versione R nella versione a 32 bit in Strumenti, Opzioni globali. Ci dovrebbero essere entrambe le opzioni a 32 bit e 64 bit R se si dispone di una versione più recente. Ciò richiederà il riavvio di R e limiterà le opzioni di memoria. Tuttavia, non è richiesta l'installazione della versione a 64 bit del jre.

Problemi correlati