2017-09-22 3 views
2

Comme beaucoup de gens, j'ai du mal à charger rJava dans RStudio - le même problème se reproduit également lorsque vous utilisez l'interface graphique R directement.rJava erreur de chargement

est ici l'erreur:

> require(rJava) 
Loading required package: rJava 
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.4/Resources/library/rJava/libs/rJava.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib 
    Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so 
    Reason: image not found 

J'ai essayé un certain nombre de choses, y compris la reconfiguration de la ligne de commande:

sudo R CMD javareconf -n 

Java interpreter : /usr/bin/java 
Java version  : 1.8.0_144 
Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre 
Java compiler : /usr/bin/javac 
Java headers gen.: /usr/bin/javah 
Java archive tool: /usr/bin/jar 
Non-system Java on macOS 

trying to compile and link a JNI program 
detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin 
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm 
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/../include/darwin -I/usr/local/include -fPIC -Wall -g -O2 -c conftest.c -o conftest.o 
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation 


JAVA_HOME  : /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre 
Java library path: $(JAVA_HOME)/lib/server 
JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin 
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm 

Quand je vérifie options("java.home") il a été mis à NULL, donc je mis à la suivante:

> options("java.home"="/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre") 

J'ai également réinstallé Java SE D Kit de développement 8, puis resintallé rJava. Quoiqu'il en soit, je continue d'avoir la même erreur.

Voici mon numéro de session:

> sessionInfo() 
R version 3.4.1 (2017-06-30) 
Platform: x86_64-apple-darwin15.6.0 (64-bit) 
Running under: OS X El Capitan 10.11.6 

Matrix products: default 
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] colorspace_1.3-2 scales_0.5.0  compiler_3.4.1 lazyeval_0.2.0 
[5] plyr_1.8.4  tools_3.4.1  gtable_0.2.0  tibble_1.3.4  
[9] Rcpp_0.12.12  ggplot2_2.2.1 grid_3.4.1  rlang_0.1.2  
[13] munsell_0.4.3 

Toutes les pensées seraient appréciés.

Répondre

5

J'ai eu un problème similaire. Solution la plus rapide était de charger manuellement le dylib.

dyn.load('/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/libjvm.dylib') 
require(rJava) 

Si la solution fonctionne ci-dessus, une solution à long terme existe en ajoutant cette commande à la borne.

sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib 

Trouvé cette solution here. Vous n'aurez plus besoin de charger manuellement le dylib à chaque fois.

+0

Eh bien, ça a fait l'affaire! – BillPetti

+0

sur mon système, avec une version plus récente de Java, le chemin est différent, donc la commande est 'dyn.load ('/ Bibliothèque/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Accueil/lib/serveur /libjvm.dylib ') ' –

0

Lors de la réinstallation Java sur un système Mac OX, vous devez fermer toutes vos sessions de r puis d'utiliser la ligne de commande du système R CMD javareconf

+0

Merci, j'ai essayé ça et ça ne résout pas le problème – BillPetti

0

C'est quelque chose qui m'a pris beaucoup assez de temps pour résoudre Mac OS

Vous pouvez essayer ces:

R 3.4, rJava, macOS and even more mess ;) et celui-ci R, Java, rJava and macOS adventures

Vous trouverez des instructions très détaillées là-bas. Cependant, notez que certaines personnes font face à système problèmes spécifiques suivant ces instructions :(

Et il est à peine possible de trouver une solution qui résout tous les problèmes des gens trouvent.