Essayer d'installer le paquet rJava sur R, sur mon Ubuntu 14.10, en utilisant ce code
if (!require(rJava)) install.packages('rJava')
eu quelques erreurs liées à Java, y compris des problèmes de jni, après la réinstallation du jdk, et a essayé d'exécuter à nouveau le même code, obtenu cette erreur
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’
cherché des solutions, pour trouver à peu près tout le monde suggérant (pour x64) d'exécuter ces commandes
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
mais cela n'a pas fonctionné, y a-t-il autre chose que je puisse faire? Je fournirai tous les détails nécessaires
J'avais la même erreur quand j'essayais de charger rJava dans RStudio ..__ La solution suivante a fonctionné pour moi
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
Après avoir effectué les étapes ci-dessus, j'ai pu exécuter avec succès les tâches suivantes dans RStudio
> library("DBI")
> library("rJava")
> library("RJDBC")
Pour résoudre cela,
Sudo R CMD javareconf
Ajoutez les éléments suivants à/etc/environment. Ceci sera alors défini chaque fois que votre machine redémarrera.
LD_LIBRARY_PATH =/usr/lib/jvm/default-Java/jre/lib/AMD64/server /
(changez de chemin)
source/etc/environment
si rien de ce qui précède ne fonctionne, essayez ceci et remerciez-moi plus tard (réponse générique) :)
R CMD javareconf -e
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Java_LD_LIBRARY_PATH
J'ai résolu un problème similaire en exécutant la commande suivante chaque fois que je veux ouvrir RStudio. Allez dans le dossier qui contient l'exécutable de rstudio, ouvrez le terminal et tapez:
LD_LIBRARY_PATH =/Bibliothèque/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Sommaire/Accueil/jre/lib/server: ouvrir -a rstudio
Bien sûr, vous devez changer le chemin en fonction de votre version de Java.
Si la solution précédente ne fonctionne pas, essayez de lire cet article: http://allanino.me/blog/programming/installing-some-r-packages/ .
Si cette solution ne fonctionne pas aussi, la dernière chance que vous avez est d'installer rJava
en le compilant à partir du code source.
Si quelqu'un vient ici maintenant, veuillez essayer l'approche ci-dessous:
Pas:
Trouvez votre emplacement R. Il sera stocké dans rsession-ld-library-path
dans le fichier rserver.conf
. Ou simplement en faisant which R
. L'emplacement est généralement /usr/lib64/R/lib
ou /usr/lib64/Microsoft-r/3.3/lib64/R/lib
Recherchez le fichier libjvm.so
qui se trouve généralement dans le chemin usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server
en fonction du fichier jre utilisé. Vérifiez l'environnement $ Java_HOME.
Créer un lien symbolique en utilisant 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
Redémarrer le serveur R
Vérifiez si $Java_HOME
pointe vers le bon emplacement en
echo $Java_HOME
J'utilise openjdk, cependant $Java_HOME
pointait vers un dossier non existant Oracle-Java.
Après avoir corrigé $Java_HOME
run
Sudo R CMD javareconf
Vérifiez la sortie. Java headers gen.
devrait pointer sur /usr/bin/javah
. Par exemple:
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
Après cela, je peux installer et charger le paquet rJava
.
Eh bien, comme @ user3673 a souligné this , la solution pour moi a été de changer la ligne suivante dans /usr/lib/R/etc/ldpaths
:
: ${R_Java_LD_LIBRARY_PATH=${Java_HOME}/lib/AMD64/server}
par celui-ci:
: ${R_Java_LD_LIBRARY_PATH=${Java_HOME}/jre/lib/AMD64/server}