java r ubuntu rjava ubuntu-14.10

java - libjvm.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio



ubuntu rjava (7)

Bueno, como user3673 ha señalado this , la solución para mí fue cambiar la siguiente línea en /usr/lib/R/etc/ldpaths :

: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/lib/amd64/server}

por este:

: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/amd64/server}

Tratando de instalar el paquete rJava en R, en mi 14.10 ubuntu, usando este código

if (!require(rJava)) install.packages(''rJava'')

obtuve algunos errores relacionados con java, incluidos los problemas de jni, después de reinstalar el jdk, e intenté ejecutar el mismo código nuevamente, obtuve ese error

Error : .onLoad failed in loadNamespace() for ''rJava'', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object ''/usr/local/lib/R/site-library/rJava/libs/rJava.so'': libjvm.so: cannot open shared object file: No such file or directory Error: loading failed Execution halted ERROR: loading failed * removing ‘/usr/local/lib/R/site-library/rJava’ Warning in install.packages : installation of package ‘rJava’ had non-zero exit status The downloaded source packages are in ‘/tmp/RtmpfFjrp0/downloaded_packages’ Warning message: In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, : there is no package called ‘rJava’

buscó soluciones, para encontrar a casi todos sugiriendo (para x64) ejecutar esos comandos

export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-oracle/lib/amd64:/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server sudo R CMD javareconf

Pero eso no funcionó, ¿hay algo más que pueda hacer? Proporcionaré los detalles necesarios.


Compruebe si $JAVA_HOME apunta a la ubicación correcta por

echo $JAVA_HOME

Estoy usando openjdk, sin embargo, $JAVA_HOME estaba apuntando a una carpeta oracle-java que no existe.

Después de arreglar $JAVA_HOME ejecutar

sudo R CMD javareconf

Compruebe la salida. Java headers gen. debe apuntar a /usr/bin/javah . Por ejemplo:

djhurio@Skyforger ~ $ sudo R CMD javareconf Java interpreter : /usr/lib/jvm/default-java/bin/java Java version : 11.0.1 Java home path : /usr/lib/jvm/default-java Java compiler : /usr/lib/jvm/default-java/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/lib/jvm/default-java/bin/jar

Después de esto puedo instalar y cargar el paquete rJava .


En caso de que ninguno de los anteriores funcione, intente esto y dame las gracias más tarde (respuesta genérica) :)

R CMD javareconf -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH


Para resolver esto,

  1. correr

    sudo R CMD javareconf

  2. Agregue lo siguiente a / etc / environment. Esto se configurará cada vez que la máquina se reinicie.

    LD_LIBRARY_PATH = / usr / lib / jvm / default-java / jre / lib / amd64 / server /

    (cambia a tu camino)

  3. Ejecuta lo siguiente:

    fuente / etc / medio ambiente

  4. reinicio del servidor rstudio

Recibía el mismo error cuando intentaba cargar rJava en RStudio. La siguiente solución funcionó para mí

1) sudo rstudio-server stop 2) export LD_LIBRARY_PATH=/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/jre/lib/amd64/default 3) sudo rstudio-server start

Después de realizar los pasos anteriores, pude ejecutar el siguiente exitosamente en RStudio

> library("DBI") > library("rJava") > library("RJDBC")


Si alguien viene aquí ahora, pruebe el siguiente enfoque:

Pasos:

  1. Encuentra tu ubicación R Se almacenará en rsession-ld-library-path en el archivo rserver.conf . O simplemente haciendo lo which R La ubicación generalmente es /usr/lib64/R/lib o /usr/lib64/microsoft-r/3.3/lib64/R/lib

  2. Encuentre el archivo libjvm.so que generalmente se encuentra en la libjvm.so usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server , dependiendo de qué jre esté usando. Compruebe en el entorno $ JAVA_HOME.

  3. Cree un enlace simbólico utilizando ln -s sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib64/microsoft-r/3.3/lib64/R/lib/libjvm.so

  4. Reiniciar el servidor R


  • Resolví un problema similar ejecutando el siguiente comando cada vez que quiero abrir RStudio. Vaya a la carpeta que contiene el ejecutable de rstudio, abra el terminal y escriba:

    LD_LIBRARY_PATH = / Library / Java / JavaVirtualMachines / jdk1.7.0_51.jdk / Contents / Home / jre / lib / server: open -a rstudio

    Por supuesto, tiene que cambiar la ruta de acceso de acuerdo con su versión de Java.

  • Si la solución anterior no funciona, intente leer este artículo: http://allanino.me/blog/programming/installing-some-r-packages/ .

  • Si esta solución no funciona también, la última oportunidad que tiene es instalar rJava compilando desde el código fuente.