Saltar al contenido

Instalación de rJava

Solución:

Parece que no tienes JDK instalado. Necesitarás al menos

sudo apt-get install openjdk-7-jdk

luego vuelve a ejecutar

sudo R CMD javareconf

Asegúrese de NO configurar JAVA_HOME a mano: se detectará automáticamente. Entonces debería ver algo como esto:

$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.7.0_91
Java home path   : /usr/lib/jvm/java-7-openjdk-amd64/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/../include
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/java-7-openjdk-amd64/jre/../include     -fpic  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/java-7-openjdk-amd64/jre
Java library path: $(JAVA_HOME)/lib/amd64/server
JNI cpp flags    : -I$(JAVA_HOME)/../include
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm

Lo que está mal con sudo apt-get install r-cran-rjava ?

Vea, por ejemplo, esta respuesta anterior y la pregunta / hilo que la rodea.

Para una instalación desde cero, aún podría ser mucho peor que comenzar desde sudo apt-get build-dep r-cran-rjava. Obtendrá el JDK correspondiente a su versión de Ubuntu.

Primero, recomendaría instalar Rstudio desde su sitio web: https://www.rstudio.com/products/rstudio/download/ (es decir, Rstudio 64bit: https://download1.rstudio.org/rstudio-0.99.489-amd64.deb ). Esto no resuelve el problema directamente, pero ayuda a evitar otros errores con Rstudio.

Con respecto al error, intente asegurarse de tener instalado JDK. No creo que el comando java -version puede saber si JDK está instalado. Debe verificar el paquete de JDK en sí, o según el mensaje de error, haga esto:

locate jni.h

La salida debe coincidir o ser compatible con su JAVAHOME, por ejemplo:

/usr/lib/jvm/java-7-openjdk-amd64/include/jni.h 
/usr/lib/jvm/java-7-oracle/include/jni.h        

Actualización 1:
R CMD javareconf está buscando el jni.h archivar bajo $(JAVA_HOME)/include
Tiene JDK instalado, pero es muy probable que tenga java predeterminado en un directorio JRE, por eso ocurrió el error.

Puedes ver donde default-java realmente apunta al hacer este comando:

jRealDir=$(readlink -f /usr/lib/jvm/default-java)
echo $jRealDir
# sample correct output: /usr/lib/jvm/jdk1.8.0_65 
# or /usr/lib/jvm/java-8-oracle if you default to Oracle's
# now check jni.h
ls -l $jRealDir/include/jni.h
# sample expected output:
# /usr/lib/jvm/jdk1.8.0_65/include/jni.h

Si el ls el comando falló, tienes que configurarlo para que javareconf ( y después rJava) puede usar java desde JDK, no desde JRE. Tienes dos opciones:

Método 1: hágalo en todo el sistema

Esto es conveniente, pero puede afectar a otros programas como el que mencionaste jmol. Pero no se preocupe, esto es reversible, simplemente vuelva a ejecutar el comando y elija el anterior. Haga el siguiente comando y elija el directorio que tiene JDK:

sudo update-alternatives --config java

Después de esa prueba, ¿cómo jmol funciona, si funciona bien, enhorabuena. Ahora está listo para probar rJava. Si no es así, pruebe el segundo método a continuación

Método 2: hazlo solo para R

poner esto en el .Rprofile bajo su directorio personal

Sys.setenv(JAVA_HOME = '/usr/lib/jvm/jdk1.8.0_65')
# this set JAVA_HOME for R to correct java home dir. 

Después de actualizar o crear el .Rprofile Reinicie R en Rstudio. los R CMD javareconf aún puede fallar en este caso, pero debería estar bien si lo ejecuta desde Shell debajo Tools menú de Rstudio.

Con respecto a la instalación de Rstudio desde el repositorio de acciones de Ubuntu. No haría ninguna diferencia para conseguir rJava corriendo. Por otra parte, recomiendo instalar Rstudio para su página de inicio porque la nueva versión también tiene algunas características interesantes (es decir, mejor autocompletado, que es lo que más me gusta).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *