Lorsque j'ai essayé d'exécuter la console R dans Eclipse, j'ai eu cette erreur:
....Please make sure that R package 'rj' (1.1 or compatible) is installed...
J'ai donc essayé de l'installer dans la console R comme ceci:
install.packages(c("rj", "rj.Gd"), repos="http://download.walware.de/rj-1.1")
et j'ai cette erreur:
** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rj.Gd', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rj.Gd/libs/rj.Gd.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
et j’ai trouvé que lors de l’installation de rJava avec: install.packages("rJava")
, une erreur similaire se produisait
** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
Quand j'ai lancé Sudo R CMD javareconf
, j'ai eu cette sortie:
Java interpreter : /usr/bin/Java
Java version : 1.7.0
Java home path : /usr/lib/jvm/Java-7-Oracle/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
NOTE: Your JVM has a bogus Java.library.path system property!
Trying a heuristic via Sun.boot.library.path to find jvm library...
Java library path: $(Java_HOME)/lib/AMD64:$(Java_HOME)/lib/AMD64/server
JNI linker flags : -L$(Java_HOME)/lib/AMD64 -L$(Java_HOME)/lib/AMD64/server -ljvm
JNI cpp flags : -I$(Java_HOME)/../include -I$(Java_HOME)/../include/linux
Updating Java configuration in /etc/R
Done.
à propos, ma configuration est:
Ubuntu 11.10 64bit
Eclipse 3.7
Oracle-1.7-jdk
R version 2.15.1
J'ai trouvé la solution:
export LD_LIBRARY_PATH=/usr/lib/jvm/Java-7-Oracle/lib/AMD64:/usr/lib/jvm/Java-7-Oracle/jre/lib/AMD64/server
puis
Sudo R CMD javareconf
Remarque: le chemin d'accès (Java-7-Oracle) doit être mis à jour en fonction de votre installation Java.
Pour les utilisateurs de Linux (Ubuntu): Si vous avez Oracle-Java (7/8) installé. Ce sera à cet endroit que l'accès /usr/lib/jvm
et Sudo
est requis.
Créez le fichier /etc/ld.so.conf.d/Java.conf
avec les entrées suivantes:
/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64
/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64/server
(Remplacez Java-8-Oracle par Java-7-Oracle en fonction de votre version de Java)
Ensuite:
Sudo ldconfig
Redémarrez RStudio puis installez le package rJava.
OR
Une autre méthode consiste également à exporter LD_LIBRARY_PATH
avec la valeur du chemin de la bibliothèque Java obtenue à partir de la commande R CMD javareconf -e
et à exécuter install.packages
.
J'ai eu un problème similaire et j'ai pu le résoudre en exécutant
R CMD javareconf -e
Sortie du javareconf -e CMD-e
Java interpreter : /export/apps/jdk/JDK-1_6_0_27/jre/bin/Java
Java version : 1.6.0_27
Java home path : /export/apps/jdk/JDK-1_6_0_27
Java compiler : /export/apps/jdk/JDK-1_6_0_27/bin/javac
Java headers gen.: /export/apps/jdk/JDK-1_6_0_27/bin/javah
Java archive tool: /export/apps/jdk/JDK-1_6_0_27/bin/jar
Java library path: /export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64 -L/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags : -I/export/apps/jdk/JDK-1_6_0_27/include -I/export/apps/jdk/JDK-1_6_0_27/include/linux
The following Java variables have been exported:
Java_HOME Java JAVAC JAVAH JAR Java_LIBS Java_CPPFLAGS Java_LD_LIBRARY_PATH
Running: /bin/bash
Après avoir défini LD_LIBRARY_PATH
sur la même valeur que Java_LD_LIBRARY_PATH
, comme indiqué dans la sortie ci-dessus. J'ai pu installer rj.
export LD_LIBRARY_PATH=/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
Exécutez R puis installez rj en
install.packages(c("rj", "rj.Gd"), repos="http://download.walware.de/rj-1.1")
J'ai fait ce qui suit et cela a fonctionné pour moi:
export LD_LIBRARY_PATH=$Java_LD_LIBRARY_PATH
Sudo R CMD javareconf
Je devais redémarrer R aussi.
Des années plus tard, j'ai fini par répondre à cette question après avoir recherché une erreur signalée par R après avoir installé sans succès un package qui nécessitait de passer à Java.
Tout ce que j'avais à faire pour le réparer était:
$ Sudo R CMD javareconf
ou simplement définir la bibliothèque dans R?
Je viens de lancer cette commande dans R:
Sys.setenv(Java_HOME='/usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server')
(remplacez "/ usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server" par le chemin de votre bibliothèque Java disponible sous "Sudo R CMD javareconf")
Ce n’est peut-être pas la solution la plus élégante, mais elle a fonctionné pour moi!
Je n'avais pas installé le jdk que je pouvais réparer avec Sudo apt-get install jdk-*
Après cela, je pouvais exécuter le Sudo R CMD javareconf
qui entraînait toujours un message d'erreur auparavant. Tout était configuré correctement et aucune modification manuelle n'était requise, et après l'installation de ce package s'est déroulée sans problème en mode R (redémarrage requis).
Aucune des solutions ci-dessus n'a fonctionné pour moi. La seule solution permettant d'installer rJava
sous Linux Ubuntu sans aucun problème était de passer la commande RScript
après l'installation de la base R:
$ Sudo Rscript -e 'install.packages("rJava", repos = "http://cran.r-project.org/")'
Cela corrige le problème LD_LIBRARY_PATH pour moi (Linux, Debian 7.1.0, tc-Shell, R version 3.0.2):
Ajoutez cette ligne à .cshrc:
setenv LD_LIBRARY_PATH $ Java_HOME/jre/lib/AMD64: $ Java_HOME/jre/lib/AMD64/serveur
Ajouter cette commande à ~/.login ne suffisait pas; la variable d'environnement LD_LIBRARY_PATH n'était toujours pas connue dans les nouveaux xterms: echo $ LD_LIBRARY_PATH: LD_LIBRARY_PATH: Variable non définie. (Pourquoi??)
Curieusement, lorsque vous démarrez R en tant que superutilisateur, la recherche de libjvm.so ne posait aucun problème.
Lorsque vous rencontrez des erreurs limjvm.so
manquantes, assurez-vous que la bonne ldpaths
est sélectionnée dans la configuration standard dans /etc/R
et celle dans /usr/lib/R/etc
.
J'ai résolu ce problème en exécutant simplement R avec Sudo, puis install.packages('rJava`)
.