54 votes

Impossible d'installer rJava dans R 3.0 sous Ubuntu 13.04

Je ne suis pas en mesure d'appeler rJava dans R 3.0 . J'ai reçu le message suivant

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

J'obtiens une erreur lorsque j'ai essayé de réinstaller rJava paquet. J'ai fourni la sortie 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.

J'utilise Ubuntu 13.04. J'ai également essayé apt-get install r-cran-rjava ce qui n'aide pas à résoudre le problème. En ce qui concerne jni.h, il y a eu quelques solutions ici. Mais, je ne sais pas comment utiliser la solution ici.

76voto

Peter Points 588

J'ai rencontré exactement le même problème. Ma solution a été d'installer l'openjdk-7-* via

sudo apt-get install openjdk-7-*

Suivi de

sudo R CMD javareconf

et j'ai ensuite pu installer rJava dans R via install.packages("rJava") .

Même si ce n'est pas la solution la plus élégante, elle semble avoir résolu mes problèmes de fonctionnement de rJava.

2 votes

Merci. Cela a fonctionné. J'ai essayé d'installer java hier, j'ai aussi essayé Oracle Java, mais ça n'a pas marché. Je ne suis pas sûr que ce soit l'installation de JRE ou le redémarrage qui ait fait l'affaire.

9 votes

Pas de chance pour moi : les deux premières étapes se déroulent sans erreur, puis sur install.packages J'ai compris : error: unable to load shared object '/home/cboettig/R/x86_64-pc-linux-gnu-library/3.0/rJava/libs‌​/rJava.so': libjvm.so: cannot open shared object file: No such file or directory . Des idées ?

7 votes

J'ai rencontré le même problème - ça n'a pas marché. J'ai finalement découvert qu'après avoir installé Java 1.7, je devais demander à Ubuntu de l'utiliser par défaut. aquí - en utilisant update-java-alternatives -l pour obtenir la liste des versions de java installées et sudo update-java-alternatives -s java-1.7.0-openjdk-i386 par défaut à 1.7. Après cela, sudo R CMD javareconf a fonctionné sans erreur et j'ai pu install.packages("rJava")

27voto

Mingot Points 615

Pour ceux qui obtiennent l'erreur :

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

J'ai résolu l'erreur en localisant la bibliothèque dans le système et en les reliant à /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/

2voto

atfornes Points 331

Installer rJava à partir des paquets de distribution comme proposé dans cette réponse de askUbuntu fonctionne également :

sudo apt-get install r-cran-rjava

NOTE : essayé à partir d'un système Debian.

0voto

Santosh Garole Points 403

J'étais également confronté à la même erreur sur RHEL8.1 et je l'ai résolue comme suit :

yum --enablerepo=* install java-1.8* 

J'ai ensuite exécuté la même commande qui me donnait les journaux d'erreurs du serveur R.

R CMD javareconf

qui se transforme en la sortie suivante.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X