J'ai récemment "mis à jour" d'OSX Mountain Lion vers Yosemite et de R 3.1.3 vers 3.2. Immédiatement après la mise à niveau, lorsque j'ai ouvert R ou RStudio, j'ai reçu un message contextuel disant que je devais installer Java 6. De plus, le chargement rJava
ou tout paquet qui dépend de rJava (par exemple xlsx
) a causé le crash de RStudio (R a également planté quand j'ai essayé cela en ouvrant R.app
directement).
Après avoir essayé quelques correctifs trouvés sur Stack Overflow et ailleurs (plus de détails ci-dessous), je suis à un point où le chargement rJava
ou tout package qui en dépend rJava
ne provoque plus le plantage de R, mais entraîne l'erreur suivante:
library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
Cependant, si j'appelle R à partir de la ligne de commande et que je charge ensuite rJava
ou tout package qui en dépend rJava
, cela semble fonctionner (ou du moins je ne reçois aucun message d'erreur).
J'ai essayé un certain nombre de tentatives de corrections différentes, certaines à quelques reprises, et je ne me souviens pas exactement de ce que j'ai fait dans quel ordre (je ne savais pas que ce serait un tel bourbier et ne suivait pas vraiment) , mais voici l'essentiel:
Ajout de ce qui suit à mon
.bash_profile
(par cette réponse SO ):export JAVA_HOME = "/ usr / libexec / java_home -v 1.8"
export LD_LIBRARY_PATH = $ JAVA_HOME / jre / lib / serverJava reconfiguré à partir de la ligne de commande comme suit:
sudo R CMD javareconf -n
Vérifié
options("java.home")
et découvert que ce paramètre était défini surNULL
. J'ai essayé de le configurer comme suit (par cette question SO ):options ("java.home" = "/ Bibliothèque / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre")
Installé le dernier kit de développement Java et réinstallé à
rJava
partir de la source (je ne me souviens pas où j'ai trouvé celui-là).
À un moment donné, en essayant tout cela, j'ai pu charger rJava
sans planter R, mais j'ai plutôt reçu le message d'erreur ci-dessus. De plus, lorsque je quitte RStudio, il semble se fermer normalement, mais un message "RStudio quitte inopinément" apparaît alors, indiquant que le programme s'est écrasé en essayant de se fermer.
J'ai finalement décidé d'installer Java pour OS X 2014-001 (Java 6), car je semblais manquer d'options. Maintenant, lorsque j'ai ouvert R ou RStudio, le message contextuel "Ce logiciel a besoin de Java 6" n'apparaissait plus. Cependant, je recevais toujours le .onLoad failed in loadNamespace() for 'rJava'
message d'erreur ci-dessus.
En examinant certains des articles que j'avais déjà consultés, j'ai remarqué une autre réponse SO que j'avais manquée auparavant, qui recommandait d'ouvrir RStudio avec le code de ligne de commande suivant qui donne à RStudio le chemin correct vers java:
LD_LIBRARY_PATH = $ (/ usr / libexec / java_home) / jre / lib / server: ouvrir -a RStudio
Cela a ouvert une fenêtre RStudio et j'ai également pu charger rJava
et les packages qui en dépendent sans obtenir d'erreur.
Enfin, j'ai essayé d'exécuter R à partir de la ligne de commande (ce que je n'avais pas fait auparavant). Il s'avère que sur la ligne de commande, le chargement rJava
ou tout autre package qui dépend de rJava
fonctionne et ne génère aucune erreur.
Donc, je peux maintenant me mettre rJava
au travail si j'ouvre RStudio à partir de la ligne de commande avec le code qui donne à RStudio le chemin java (comme indiqué ci-dessus). Cependant, j'aimerais trouver un moyen de résoudre le problème sous-jacent, quel qu'il soit, afin que RStudio puisse être ouvert de la manière habituelle de Mac, sans avoir besoin d'un kludge de ligne de commande. Je crains également que l'installation d'une ancienne version de Java puisse causer des problèmes ultérieurement.
Quelqu'un a-t-il des idées sur la façon de diagnostiquer et de résoudre ce problème?
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
astuce, mais cela ne fonctionne plus. J'ai écrit un article de blog concernant ce problème et j'y ai décrit ce problème. Je me demande si d'autres rencontrent ce problème aussi dans cette configuration ou si c'est de ma faute.Yosemite
, donc je ne suis pas sûr. Voir ci-dessous pour une réponse relative àEl Capitan
.El Capitan
solution ci-dessous est utile dès que lesRStudio
chargesrJava
sont attendues.otool -L /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
d'obtenir une liste des bibliothèques partagées et comment elles sont résolues. Je ne sais pas comment découvrir le contenu d'exécution de@rpath
.Réponses:
J'ai eu le même problème et j'ai suivi les mêmes étapes que vous. La dernière étape pour permettre le démarrage de RStudio via Finder / Spotlight était de lier libjvm.dylib à / usr / local / lib:
-f
L'indicateur est ajouté pour forcer l'écrasement du fichier / lien existantla source
cannot jfindclass[[1]]
rJava et d'un pilote JDBC/usr/local/lib/libjvm.dylib
fichier, car / usr / local / lib / ne semble pas être sur le @rpath. Par exemple:ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/
Sous OSX El Capitan 10.11, l'utilisateur n'a pas l'autorisation d'écrire dans / usr / lib. Alors à la place, utilisez la commande suivante:
la source
Vous pouvez charger le libjvm.dylib explicitement, en exécutant comme
la source
+1
pour offrir une alternative cependant.Sur macOS High Sierra (10.13.1) et Java Version 9, vous devez utiliser un chemin JVM légèrement différent (notez le
jre
dossier manquant dans le chemin par rapport aux instructions des versions précédentes de Java):Vous devez également informer R de la JVM:
la source
La commande suivante fonctionne:
Après cela, dans RStudio, le chargement de rJava se fait par le chargement du paquet "xlsx".
Environnement PS # 1: Mac OS X El Capitan 10.11.3+ avec RStudio 0.99.491+ et R 3.2.3+. (J'ai maintenant testé cela également sur macOS Sierra (10.12) et R.3.3.1.)
PS # 2 Je trouve que
openxlsx
c'est beaucoup plus rapide et ne repose pas sur Java pour fonctionner, alors j'utilise maintenant ce package. J'espère que cela aide les autres.la source
openxlsx
FTW!openxlsx
quand même l' utiliser .Vous devriez pouvoir utiliser le CRAN rJava, sans avoir besoin de recompiler rJava ou d'effectuer des étapes supplémentaires en liant la bibliothèque partagée au répertoire de la bibliothèque de frameworks R.
la source
Voici comment je l'ai configuré pour fonctionner correctement sur deux Mac exécutant Mac OS X El Capitan (10.11.6):
Désinstallez 'rJava' en exécutant les commandes suivantes dans une fenêtre de terminal:
Téléchargez et installez le logiciel Java à partir d'Oracle: https://www.java.com/en/download/mac_download.jsp
Ajoutez les lignes suivantes à l'
/Users/<userid>/.bashrc
utilisation de votre éditeur préféré:Fermez et redémarrez toutes les fenêtres de terminal, R et RStudio (pour récupérer les modifications
.bashrc
).Exécutez la commande suivante dans une fenêtre de terminal:
Exécutez la commande suivante dans une fenêtre de terminal:
la source
Voici les étapes faciles pour cela:
Ouvrez R et installez rJava avec cette commande:
install.packages ("rJava", dépendances = TRUE, type = "source")
la source
libjvm.dylib
en/usr/local/lib
a également commencé :)Le problème d'image introuvable existe avec une toute nouvelle installation sur OSX High Sierra avec le dernier JDK Java SE 10.
J'ai pu résoudre le problème de chemin avec rJava en utilisant le correctif trouvé sur la page des problèmes de rJava Github: https://github.com/su/rJava/issues/78
R CMD javareconf JAVA_CPPFLAGS = -I / System / Library / Frameworks / JavaVM.framework / Headers
la source
Voici ce qui a fonctionné pour moi sur MAC:
dans votre
~/.profile
ou~/.bashrc
ajoutez cette ligne:%export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
1.1
% source .profile
(ou% source .bashrc
)% sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
remove.packages(rJava)
remove.packages(Rweka)
%sudo R CMD javareconf
install.packages("rJava", dependencies = TRUE, type = "source")
install.packages("rJava", dependencies = TRUE, type = "source")
library("rJava", "RWeka")
Bonne chance.
la source
Peut-être une autre réponse simple qui ne touche pas votre système de fichiers:
$ install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
(Remplacez
jdk1.8.0_131.jdk
par votre chemin JDK.)la source
install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/server /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so
. J'ai pu voir que le chemin d'accès manquait avecotool -l /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so | grep LC_RPATH
Vérifiez l'emplacement du fichier libjvm.dylib.
Essayez ceci, dans mon cas, cela a fonctionné:
la source
J'ai parcouru tout le dépannage que j'ai pu trouver, puis j'ai installé jdk-11.0.1_osx-x64_bin.dmg à partir de: Téléchargements Oracle
Tout a parfaitement fonctionné après cela.
Vérifiez la version de la bibliothèque qui n'a pas été chargée lorsque vous exécutez la bibliothèque ('rJava') et faites-la correspondre à la version java dont vous avez besoin.
la source
J'ai remarqué que 'rJava' est assez strict sur la version JDK lors du chargement dans Rstudio.
Dans mon cas (Mac OS. 10.14.6 - Mojave), j'avais installé jdk-13 qui a été testé contre jdk-11.
J'ai lié ma version JDK à un répertoire inexistant qui était supposé valide par Rstudio (JDK 11):
et étonnamment cela fonctionne comme un charme ...
BTW., il n'y avait aucun problème pour exécuter 'rJava' en suivant les instructions précédentes dans R. natif.
la source
Ici, vous pouvez télécharger l'ancienne version Java 6 pour El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US Après cela, le package rJava fonctionne pour moi.
la source
Cette ligne ci-dessous a résolu le même problème que j'avais avec le
rJava
package que certains autres dans cette discussion. Je suis sûr qu'il y a plus d'une solution à ce problème et je les remercie tous sincèrement pour leurs contributions car parfois une ligne comme celle ci-dessous permet de gagner beaucoup de temps avant d'aller à la poubelle!la source
Exécutez ce qui suit sur la ligne de commande:
sudo R CMD javareconf
Plusieurs solutions ci-dessus ont mentionné cela, mais elles suggèrent également de supprimer puis de réinstaller le
rJava
package. J'ai trouvé ces étapes supplémentaires inutiles.la source
sudo R CMD javareconf
mais lelibrary(rJava)
donne toujours les mêmes erreurs:Error: package or namespace load failed for ‘rJava’: .onLoad failed in loadNamespace() for 'rJava', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so': ... Reason: image not found
Vous pouvez modifier la référence dans R à l'aide de la commande suivante:
la source