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ès RStudio charges rJava 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.
InformationsquelleAutor eipi10 | 2015-06-09