found - .onload failed in loadnamespace() for rjava details call dyn load file dllpath dllpath
Error de carga de rJava en RStudio/R después de "actualizar" a OSX Yosemite (17)
Aquí están los pasos fáciles para ello:
- eliminar el paquete rJava: remove.packages (rJava)
- más cerca
- instala la última versión de Java en tu mac
- abra la terminal y escriba este comando: sudo R CMD javareconf
-
Abra R e instale rJava con este comando:
install.packages ("rJava", dependencias = VERDADERO, tipo = "fuente")
Recientemente "actualicé" de OSX Mountain Lion a Yosemite y de R 3.1.3 a 3.2.
Inmediatamente después de la actualización, cuando abrí R o RStudio recibí un mensaje emergente que decía que necesitaba instalar Java 6. Además, cargar
rJava
o cualquier paquete que dependa de rJava (por ejemplo,
xlsx
) causó que RStudio se bloqueara (R También se bloqueó cuando intenté esto al abrir
R.app
directamente).
Después de intentar algunas correcciones encontradas en Stack Overflow y en otros lugares (más detalles a continuación), estoy en un punto en el que cargar
rJava
o cualquier paquete que dependa de
rJava
ya no hace que R se bloquee, pero da como resultado el siguiente error:
library(rJava)
Error : .onLoad failed in loadNamespace() for ''rJava'', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object ''/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so'':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
Sin embargo, si invoco R desde la línea de comando y luego cargo
rJava
o cualquier paquete que dependa de
rJava
, parece funcionar (o al menos no recibo ningún mensaje de error).
He intentado varios intentos diferentes de solución, algunos de ellos varias veces, y no puedo recordar exactamente lo que hice en qué orden (no me di cuenta de que esto sería un pantano y realmente no estaba siguiendo la pista) , pero aquí está la esencia de esto:
-
Agregué lo siguiente a mi
.bash_profile
(según esta respuesta SO ):export JAVA_HOME = "/ usr / libexec / java_home -v 1.8"
export LD_LIBRARY_PATH = $ JAVA_HOME / jre / lib / server -
Java reconfigurado desde la línea de comando de la siguiente manera:
sudo R CMD javareconf -n
-
Se
options("java.home")
y se descubrió que estaba configurado enNULL
. Intenté configurarlo de la siguiente manera (según esta pregunta SO ):opciones ("java.home" = "/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre")
-
Instalé el último Kit de desarrollo de Java y reinstalé
rJava
desde la fuente (no recuerdo dónde encontré ese).
En algún momento al intentar todo esto, pude cargar
rJava
sin bloquear R, pero en su lugar recibí el mensaje de error publicado anteriormente.
Además, cuando salgo de RStudio, parece que se cierra normalmente, pero luego aparece un mensaje "RStudio se cerró inesperadamente", lo que indica que el programa se ha bloqueado al intentar cerrar.
Finalmente decidí instalar
Java para OS X 2014-001
(Java 6), ya que parecía estar quedando sin opciones.
Ahora, cuando abrí R o RStudio, ya no aparecía el mensaje emergente "Este software necesita Java 6".
Sin embargo, todavía recibía el
.onLoad failed in loadNamespace() for ''rJava''
mensaje de error
.onLoad failed in loadNamespace() for ''rJava''
publicado anteriormente.
Al revisar algunas de las publicaciones que ya había visto, noté otra respuesta SO que me había perdido antes, que recomendó abrir RStudio con el siguiente código de línea de comando que le da a RStudio la ruta correcta a Java:
LD_LIBRARY_PATH = $ (/ usr / libexec / java_home) / jre / lib / server: open -a RStudio
Eso abrió una ventana de RStudio y también pude cargar
rJava
y paquetes que dependen de él sin obtener un error.
Por último, intenté ejecutar R desde la línea de comandos (que no había hecho antes).
Resulta que en la línea de comando, cargar
rJava
o cualquier paquete que dependa de
rJava
funciona y no arroja ningún error.
Entonces, ahora puedo hacer que
rJava
funcione si abro RStudio desde la línea de comando con el código que le da a RStudio la ruta de Java (como se señaló anteriormente).
Sin embargo, me gustaría encontrar una manera de solucionar el problema subyacente, sea cual sea, para que RStudio se pueda abrir de la manera habitual en Mac, sin necesidad de una línea de comando kludge.
También me preocupa que tener instalada una versión anterior de Java pueda causar problemas en el futuro.
¿Alguien tiene alguna idea sobre cómo diagnosticar y resolver este problema?
Aquí lo que funcionó para mí en MAC:
-
en su
~/.profile
o~/.bashrc
agregue esta línea:%export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
1.1
% source .profile
(o% source .bashrc
) -
% sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-
remove.packages(rJava)
-
remove.packages(Rweka)
-
Desde la terminal ingrese este comando:
%sudo R CMD javareconf
-
install.packages("rJava", dependencies = TRUE, type = "source")
-
install.packages("rJava", dependencies = TRUE, type = "source")
-
Cargue su
library("rJava", "RWeka")
La mejor de las suertes.
Aquí puede descargar la versión 6 de Java heredada para El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US Después de hacerlo, el paquete rJava funciona para mí.
Debería poder utilizar CRAN rJava, sin necesidad de volver a compilar rJava o realizar ningún paso adicional vinculando la biblioteca compartida al directorio de la biblioteca de frameworks R.
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /Library/Frameworks/R.framework/Libraries
Ejecute lo siguiente en la línea de comando:
sudo R CMD javareconf
Varias soluciones anteriores han mencionado esto, pero también sugieren que uno elimine y luego reinstale el paquete
rJava
.
Encontré que esos pasos adicionales son innecesarios.
El problema de imagen no encontrada existe con una instalación completamente nueva en OSX High Sierra con el último Java SE 10 JDK.
Pude resolver el problema de ruta con rJava usando la solución que se encuentra en la página de problemas de rJava Github: https://github.com/s-u/rJava/issues/78
R CMD javareconf JAVA_CPPFLAGS = -I / System / Library / Frameworks / JavaVM.framework / Headers
El siguiente comando funciona:
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Después de eso, en RStudio, cargar rJava funciona mediante la carga del paquete "xlsx".
library("xlsx")
Entorno PS # 1: Mac OS X El Capitan 10.11.3+ con RStudio 0.99.491+ y R 3.2.3+. (Ahora he probado esto también en macOS Sierra (10.12) y R.3.3.1.)
PS # 2 Me parece que
openxlsx
es mucho más rápido y no depende de Java para funcionar, así que ahora estoy usando ese paquete.
Espero que ayude a los demás.
En OSX El Capitan 10.11, el usuario no tiene permiso para escribir en / usr / lib. Entonces, en su lugar, use el siguiente comando:
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
En macOS High Sierra (10.13.1) y Java Versión 9, debe usar una ruta JVM ligeramente diferente (observe la carpeta
jre
falta en la ruta en comparación con las instrucciones para versiones anteriores de Java):
sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib
También debe notificar a R sobre la JVM:
MY_R_VERSION=$(Rscript -e "cat(with(R.version, sprintf(''%s.%s'', major, substring(minor, 1, 1))))")
ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/$MY_R_VERSION/Resources/lib/
Esta línea a continuación ha resuelto el mismo problema que tenía con el paquete
rJava
como lo
rJava
algunos otros en esta discusión.
Estoy seguro de que hay más de una solución a este problema y les agradezco sinceramente a todos por sus contribuciones porque a veces una línea como la siguiente ahorra mucho tiempo de ir a la basura.
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Noté que ''rJava'' es bastante estricto sobre la versión JDK mientras se carga en Rstudio.
En mi caso (Mac OS. 10.14.6 - Mojave) instalé jdk-13 que fue probado contra jdk-11.
He vinculado mi versión de JDK a un directorio inexistente que Rstudio asumió como válido (JDK 11):
sudo ln -sf /Library/Java/JavaVirtualMachines/jdk-13.jdk/ /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
y sorprendentemente funciona como un encanto ...
Por cierto, no hubo ningún problema para ejecutar ''rJava'' siguiendo las instrucciones anteriores en R. nativa.
Puede cargar libjvm.dylib explícitamente, ejecutando como
dyn.load(''/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/server/libjvm.dylib'')
library(rJava)
Quizás otra respuesta simple que no toque su sistema de archivos:
$ install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
(Sustituya
jdk1.8.0_131.jdk
con su ruta JDK).
Revisé toda la solución de problemas que pude encontrar, luego instalé jdk-11.0.1_osx-x64_bin.dmg de: Descargas de Oracle
Todo funcionó perfectamente después de eso.
Verifique la versión de la biblioteca que no se cargó cuando ejecuta la biblioteca (''rJava'') y compárela con la versión de Java que necesita instalar.
Tuve el mismo problema y seguí los mismos pasos que tú. El último paso para permitir iniciar RStudio a través de Finder / Spotlight fue vincular libjvm.dylib a / usr / local / lib:
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-f
se agrega para forzar la sobrescritura del archivo / enlace existente
Verifique la ubicación del archivo libjvm.dylib.
Prueba esto, en mi caso esto funcionó:
dyn.load(''/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/lib/server/libjvm.dylib'')
library(rJava)
Así es como lo configuré funcionando correctamente en dos Mac con Mac OS X El Capitan (10.11.6):
-
Desinstale ''rJava'' emitiendo los siguientes comandos en una ventana de terminal:
Rscript -e ''remove.packages("rJava")'' sudo Rscript -e ''remove.packages("rJava")''
-
Descargue e instale el software Java de Oracle: https://www.java.com/en/download/mac_download.jsp
-
Agregue las siguientes líneas a
/Users/<userid>/.bashrc
usando su editor favorito:# Set JAVA_HOME so rJava package can find it export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)/jre
-
Cierre y reinicie cualquier ventana de terminal, R y RStudio (para recoger los cambios en
.bashrc
). -
Ejecute el siguiente comando en una ventana de Terminal:
sudo ln -sf $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-
Ejecute el siguiente comando en una ventana de Terminal:
sudo Rscript -e ''install.packages("rJava", repos="http://rforge.net", type="source")''