rJava erreur de chargement dans RStudio/R après la “mise à niveau” pour OSX Yosemite
J'ai récemment "mis à jour" de mac OS x Mountain Lion pour Yosemite et de R 3.1.3 3.2. Immédiatement après la mise à niveau, lorsque j'ai ouvert de R et RStudio, j'ai reçu un message pop-up disant que j'avais besoin d'installer Java 6. En outre, le chargement rJava
ou tout autre programme qui dépend de la rJava (par exemple, xlsx
) causée RStudio blocage (R aussi s'est écrasé quand je l'ai essayé en ouvrant R.app
directement).
Après avoir essayé quelques bugs trouvés sur un Débordement de Pile et d'ailleurs (plus de détails ci-dessous), je suis à un point où le chargement rJava
ou tout autre programme qui dépend de la rJava
ne provoque plus le R de crash, mais les résultats dans 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'invoque R à partir de la ligne de commande, et de la charge rJava
ou tout autre programme qui dépend de la rJava
, il semble que cela fonctionne (ou, au moins, je ne reçois pas tous les messages d'erreur).
J'ai essayé un certain nombre de différents tenté de bugs, certains d'entre eux à quelques reprises, et ne me souviens pas exactement ce que j'ai fait dans quel ordre (ne le savais pas, ce serait un tel bourbier et n'était pas vraiment garder la trace), mais voici l'essentiel:
-
Ajouté ce qui suit à mon
.bash_profile
(par cette SORTE de réponse):export JAVA_HOME="/usr/libexec/java_home -v 1.8"
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/serveur -
Reconfiguré java à partir de la ligne de commande comme suit:
sudo R CMD javareconf -n
-
Vérifié
options("java.home")
et découvert que c'était mis àNULL
. J'ai essayé de le mettre suivantes (par cette SORTE de question):options("java.home"="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre")
-
Installé la dernière version du Kit de Développement Java et réinstallé
rJava
à partir de la source (ne me souviens pas où j'ai trouvé celle-là).
À un certain point, tout en essayant tous de ces, j'ai été en mesure de charger rJava
sans s'écraser R, mais au lieu eu le message d'erreur affiché ci-dessus. En plus, quand j'ai quitté la RStudio, il semblerait que près normalement, mais alors un "RStudio se fermer de façon inattendue" message pop-up indiquant que le programme avait eu un accident en essayant de fermer.
Je me suis enfin décidé à installer Java pour OS X 2014-001 (Java 6), comme il me semblait être à court d'options. Maintenant, quand j'ai ouvert de R et RStudio de la "Ce logiciel a besoin de Java 6" pop-up message n'apparaissait plus. Cependant, j'étais encore en train de le .onLoad failed in loadNamespace() for 'rJava'
message d'erreur affiché ci-dessus.
En passant en revue certains des messages que je l'avais déjà regardé, j'ai remarqué de l'autre AFIN de répondre à que j'avais raté avant, qui a recommandé l'ouverture de RStudio avec la ligne de commande suivante de code qui donne RStudio le chemin d'accès correct à java:
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/serveur: l'ouverture d'un RStudio
Qui a ouvert une RStudio fenêtre et j'ai aussi été en mesure de charger rJava
et les paquets qui en dépendent, sans avoir une erreur.
Enfin, j'ai essayé de courir R à partir de la ligne de commande (je n'en avais jamais fait avant). Il s'avère que sur la ligne de commande, chargement rJava
ou tout autre programme qui dépend de la rJava
de travaux et de ne pas jeter des erreurs.
Donc, je peux maintenant obtenir rJava
de travail si j'ouvre RStudio à partir de la ligne de commande avec le code qui donne RStudio le chemin d'accès java (comme indiqué ci-dessus). Cependant, j'aimerais trouver un moyen de résoudre le problème sous-jacent, quel qu'il soit, de sorte que RStudio peut être ouvert dans l'habitude Mac, sans avoir besoin d'une ligne de commande bidouille. Je suis aussi concerné que le fait d'avoir une ancienne version de Java installée pourrait causer des problèmes sur la route.
Quelqu'un a une idée sur la façon de diagnostiquer et de résoudre ce problème?
- Cette solution reste du travail pour vous dans El Capitan? J'ai eu ce travail avant d'utiliser le
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
truc, mais il ne fonctionne plus. J'ai a écrit un billet de blog à propos de cette question et décrit ce problème là. Je me demande si les autres l'expérience de ce problème de trop dans cette configuration, ou si c'est de ma faute. - Je suis toujours à l'aide de
Yosemite
, donc je ne suis pas sûr. Voir ci-dessous pour une réponse liée àEl Capitan
. - Ok, je pense que je vais poster une nouvelle question alors. Oui le
El Capitan
solution ci-dessous est utile dèsRStudio
chargesrJava
comme prévu. - Il a travaillé, après j'ai redémarré RStudio
- Sur le diagnostic, essayez
otool -L /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
pour obtenir une liste des bibliothèques partagées et comment ils doivent être résolues. Je ne suis pas sûr de la façon de découvrir l'exécution sommaire de@rpath
.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et suis passé par les mêmes étapes que vous. L'étape finale pour autoriser le démarrage RStudio par Finder/Projecteur a été de lier libjvm.dylib dans /usr/local/lib:
-f
indicateur est ajouté à force d'écraser le fichier existant/liencannot jfindclass[[1]]
qui peut venir de rJava et un pilote JDBC/usr/local/lib/libjvm.dylib
fichier depuis /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/
Sur OSX El Capitan 10.11, l'utilisateur n'est pas autorisé à écrire dans /usr/lib. Donc, au lieu de cela, utilisez la commande suivante:
Vous pouvez charger la libjvm.dylib explicitement, par courir comme
+1
pour offrir une alternative bien.Sur macOS High Sierra (10.13.1) et Java Version 9 vous avez un peu différent de la JVM chemin (remarquez le manque
jre
dossier dans le chemin d'accès par rapport aux instructions pour les précédentes versions de Java):Vous devez également aviser R sur la JVM:
Commande suivante fonctionne:
Après que, dans RStudio, le chargement rJava œuvres par le biais de chargement de la "xlsx" package.
P. S. N ° 1 de l'Environnement: Mac OS X El Capitan 10.11.3+ avec RStudio 0.99.491+ et R 3.2.3+. (J'ai testé également sur macOS Sierra (10.12) et R. 3.3.1.)
P. S. n ° 2, je trouve que
openxlsx
est beaucoup plus rapide et ne pas compter sur Java pour travailler, donc je suis maintenant à l'aide de ce logiciel. L'espoir qui aide les autres.openxlsx
FTW!openxlsx
de toute façon.C'est comment j'ai configuré il fonctionne correctement sur deux Mac fonctionnant sous Mac OS X El Capitan (10.11.6):
Désinstaller 'rJava' en exécutant les commandes suivantes dans une fenêtre de terminal:
Télécharger et installer le logiciel Java de Oracle: https://www.java.com/en/download/mac_download.jsp
Ajoutez les lignes suivantes à
/Users/<userid>/.bashrc
à l'aide de votre éditeur de texte favori:Fermez et redémarrez n'importe quel terminal, R et RStudio windows (pour ramasser 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:
Vous devriez être en mesure d'utiliser le CRAN rJava, sans avoir besoin de recompiler rJava ou de faire toute les étapes supplémentaires par la liaison de la bibliothèque partagée de la R des cadres répertoire de la bibliothèque.
Voici les étapes faciles pour elle:
Ouvert de R et installer rJava avec cette commande:
installer.les packages("rJava", dépendances=TRUE, type="source")
libjvm.dylib
en/usr/local/lib
fait également commencer 🙂L'image introuvable problème existe avec une toute nouvelle installation sur OSX High Sierra avec la dernière version de Java SE 10 JDK.
J'ai été en mesure de résoudre le problème de chemin d'accès avec rJava à l'aide de la trouvé de solution sur le rJava Github questions de page: https://github.com/s-u/rJava/issues/78
R CMD javareconf JAVA_CPPFLAGS=-I/System/Library/Frameworks/JavaVM.cadre/en-Têtes,
Ici ce qui a fonctionné pour moi sur MAC:
dans votre
~/.profile
ou~/.bashrc
ajouter 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")
Meilleur de la chance.
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
(Substitut
jdk1.8.0_131.jdk
avec votre JDK chemin.)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 rpath manquait àotool -l /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so | grep LC_RPATH
Vérifier l'emplacement de libjvm.dylib fichier.
Essayez cela, dans mon cas cela a fonctionné:
Je suis passé par toutes les méthodes que j'ai pu trouver, puis installé jdk-11.0.1_osx-x64_bin.dmg: Oracle téléchargements
Tout a parfaitement fonctionné par la suite.
Vérifier la version de bibliothèque n'était pas chargée lorsque vous exécutez la bibliothèque('rJava') et le faire correspondre à la version de java que vous devez installé.
Ici vous pouvez télécharger l'héritage de la version Java 6 pour El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=fr_fr
Après cela, le rJava paquet fonctionne pour moi.
Cette ligne ci-dessous a résolu le même problème que j'ai avec
rJava
paquet comme quelques autres dans cette discussion. Je suis sûr qu'il y a plus d'une solution à ce problème et je tiens à les remercier tous pour leur contribution parce que parfois une ligne comme celle ci-dessous permet d'économiser beaucoup de temps d'aller à la corbeille!Exécuter les opérations suivantes sur la ligne de commande:
sudo R CMD javareconf
Plusieurs des solutions ci-dessus ont parlé, mais ils suggèrent également que l'on supprimer et ensuite ré-installer le
rJava
paquet. J'ai trouvé ces étapes supplémentaires inutiles.sudo R CMD javareconf
mais lalibrary(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
J'ai remarqué que "rJava' est assez stricte à propos de la version de 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 les jdk-11.
J'ai lié ma version du JDK pour un répertoire inexistant qui a été supposé pour être valide par Rstudio JDK (11):
et curieusement il fonctionne comme un charme...
BTW., il n'y a pas de problème pour exécuter 'rJava' en suivant les instructions précédentes en natif R.