java r ubuntu jni rjava

No se puede instalar rJava en R 3.0 en Ubuntu 13.04



jni (3)

Instalar rJava desde los paquetes de distribución como se propone en esta respuesta askUbuntu también funciona:

sudo apt-get install r-cran-rjava

NOTA: intentado desde un sistema Debian.

No puedo llamar rJava paquete rJava en R 3.0 . Recibí el siguiente mensaje

Error: package ‘rJava’ was built before R 3.0.0: please re-install it

Recibo un error cuando intenté volver a instalar el paquete rJava . He proporcionado la salida de R CMD javareconf

Java interpreter : /usr/bin/java Java version : 1.7.0_21 Java home path : /usr/lib/jvm/java-7-openjdk-i386/jre Java compiler : /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javac Java headers gen.: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javah Java archive tool: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/jar trying to compile and link a JNI progam detected JNI cpp flags : detected JNI linker flags : gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O2 -pipe -g -c conftest.c -o conftest.o conftest.c:1:17: fatal error: jni.h: No such file or directory compilation terminated. make: *** [conftest.o] Error 1 Unable to compile a JNI program Java library path: JNI cpp flags : JNI linker flags : Updating Java configuration in /usr/lib/R Done.

Estoy usando Ubuntu 13.04. También probé apt-get install r-cran-rjava que no ayuda a resolver el problema. En cuanto a jni.h, hubo alguna solución here. Pero no estoy seguro de cómo puedo usar la solución aquí.


Me encontré con el mismo problema. Mi solución fue instalar el openjdk-7- * vía

sudo apt-get install openjdk-7-*

Seguido eso con

sudo R CMD javareconf

y luego pude instalar rJava en R a través de install.packages("rJava") .

Si bien quizás no sea la solución más elegante, parece que ha resuelto mis problemas para lograr que rJava funcione.


Para aquellos que reciben el error:

error: unable to load shared object ''/some/dir/rJava/libs/rJava.so'': libjvm.so: cannot open shared object file: No such file or directory

Resolví el error al ubicar la biblioteca en el sistema y vincularla a /usr/lib :

$sudo updatedb $locate libjvm.so /usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so $sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/