not loadnamespace found for failed dyn dllpath java r rstudio rjava macos-high-sierra

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:

  1. eliminar el paquete rJava: remove.packages (rJava)
  2. más cerca
  3. instala la última versión de Java en tu mac
  4. abra la terminal y escriba este comando: sudo R CMD javareconf
  5. 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 en NULL . 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:

  1. 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 )

  2. % sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
  3. remove.packages(rJava)
  4. remove.packages(Rweka)
  5. Desde la terminal ingrese este comando: %sudo R CMD javareconf
  6. install.packages("rJava", dependencies = TRUE, type = "source")
  7. install.packages("rJava", dependencies = TRUE, type = "source")
  8. Cargue su library("rJava", "RWeka")

La mejor de las suertes.



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):

  1. Desinstale ''rJava'' emitiendo los siguientes comandos en una ventana de terminal:

    Rscript -e ''remove.packages("rJava")'' sudo Rscript -e ''remove.packages("rJava")''

  2. Descargue e instale el software Java de Oracle: https://www.java.com/en/download/mac_download.jsp

  3. 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

  4. Cierre y reinicie cualquier ventana de terminal, R y RStudio (para recoger los cambios en .bashrc ).

  5. Ejecute el siguiente comando en una ventana de Terminal:

    sudo ln -sf $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

  6. Ejecute el siguiente comando en una ventana de Terminal:

    sudo Rscript -e ''install.packages("rJava", repos="http://rforge.net", type="source")''