Problemas al intentar cargar un paquete en R debido a rJava

93

Cuando require(xlsx)escribo para cargar el paquete xlsxen R, se muestran los siguientes mensajes:

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

También intenté cargar el rJavapaquete manualmente pero recibí este mensaje de error:

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.

¿Tiene alguna sugerencia sobre cómo solucionar el problema?

Pritam Kar
fuente
4
Intente instalar rJava... Lea esto
estudio del
6
¿Cual plataforma? Si es Windows, esto puede ser útil.
dardisco
Además, su problema le permite guardar primero su archivo .xlsx en un csv y luego usar read.csv, en lugar de intentar leer en el archivo .xlsx
generic_user
2
Si la última respuesta enumerada (16 votos en este momento) lo solucionó, marque la respuesta como aceptada.
Slak
También encontré este problema, pero lo desvié usando el readxlpaquete de Hadley Wickham . Más discusión sobre aquí - no se puede instalar libraryxlsx en ry buscar una alternativa
Ben

Respuestas:

123

La razón probablemente esté relacionada con el hecho de que está utilizando un sistema operativo de 64 bits y una versión R, pero no tiene Java instalado con la misma arquitectura. Lo que tienes que hacer es descargar Java de 64 bits desde esta página: https://www.java.com/en/download/manual.jsp

Después de eso, intente volver a cargar el xlsxpaquete. No debería necesitar reiniciar R.

Gianluca
fuente
2
(+1) No estoy seguro de si el mensaje de R apunta completamente a esto como el problema, ¡pero ese fue mi caso! Para estar seguro, puede comprobarlo. Si tiene un sistema operativo de 64 bits y R de 64 bits, ejecute la línea de comando e intente java -d64 version. Si tiene Java de 64 bits en funcionamiento, podría ser un problema de ruta del sistema.
AdamO
3
¿Quiso decir java -d64 -version?
Harrison
8

Tuve un problema similar que funcionó para mí fue configurar JAVA_HOME. Lo cansé primero en R:

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

Y cuando realmente funcionó, lo configuré en Propiedades del sistema -> Avanzado -> Variables de entorno agregando una nueva variable de sistema. Luego reinicié R / RStudio y todo funcionó.

Lauren Fitch
fuente
7

Es porque falta una de las versiones de Java (32 bits / 64 bits) en su computadora. Intente instalar ambos Jdks y ejecute el código.
Después de instalar Jdks, abra R y escriba el código

system("java -version")

Esto le dará la versión de Jdk instalada. Luego intente cargar el paquete rJava. Esto funcionó para mí.

Edwin Vivek N
fuente
4

Tuve un problema similar. Se debe al paquete dependiente 'rJava'. Este problema puede superarse redirigiendo la R para que utilice una JAVA_HOME.

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

Esto funcionó para mí.

Arul Samuel Rajkumar
fuente
4

Si tiene este error en RStudio, use el código ambiental de Lauren anterior y cambie su versión R a la versión de 32 bits en Herramientas, Opciones globales. Debería haber opciones R de 32 bits y 64 bits si tiene una versión más nueva. Esto requerirá reiniciar R y limitar sus opciones de memoria. Sin embargo, no será necesario instalar la versión de 64 bits de jre.

Ulises Ítaca
fuente
2

Un paquete alternativo que puede utilizar es readxl . Este paquete no requiere dependencias externas.

Cristóbal Alcázar
fuente
2

¡Creo que encontré la resolución porque tenía el mismo problema!

Mi solución fue instalar la actualización 181 de la versión 8 de JRE (Java Runtime Environment) de 32 y 64 bits. (Necesito 32 bits para otra aplicación, pero su solución puede ser simplemente reinstalar 64 bits por sí sola).

Tamas
fuente
1

Responder en enlace resolvió mi problema.

Antes de la resolución, probé agregando JAVA_HOME a los entornos de Windows. Resolvió este error pero creó otro problema. La solución en el enlace anterior resuelve este problema sin crear problemas adicionales.

Orhan Celik
fuente