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,
- correr
sudo R CMD javareconf
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)
- Ejecuta lo siguiente:
fuente / etc / medio ambiente
- 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:
Encuentra tu ubicación R Se almacenará en
rsession-ld-library-path
en el archivorserver.conf
. O simplemente haciendo lowhich R
La ubicación generalmente es/usr/lib64/R/lib
o/usr/lib64/microsoft-r/3.3/lib64/R/lib
Encuentre el archivo
libjvm.so
que generalmente se encuentra en lalibjvm.so
usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server
, dependiendo de qué jre esté usando. Compruebe en el entorno $ JAVA_HOME.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
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.