2017-05-24 14 views
4

macOS sierra(10.12.5)でR(バージョン3.4.0)を実行していて、rJavaライブラリが必要なxlsxライブラリを使用しようとしています。R、rJavaエラーが発生しました

私はRコンソール(差なしRStudio中または端末である場合)にlibrary(rJava)を使用してrJavaをロードしようとすると、私はトラブルの感覚を作っを抱えている、次のエラーメッセージが表示されます。

Fehler: package or namespace load failed for ‘rJava’: 
.onLoad in loadNamespace() für 'rJava' fehlgeschlagen, Details: 
    Aufruf: dyn.load(file, DLLpath = DLLpath, ...) 
    Fehler: kann shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so' nicht laden: 
    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 

問題のグーグル私は幾分似たような(しかし、少しずつ異なる問題)、多くの記事を見つけました.がその中で最も有望です。

提案の手順は私のケースに適応する必要があり、私は初心者です。私はそれらを実装することができませんでした。私に何ができる?

追加情報:

シェルコマンドjava -versionリターン:

java version "1.8.0_131" 
Java(TM) SE Runtime Environment (build 1.8.0_131-b11) 
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) 

そして、シェルコマンドR CMD javareconfリターン:

Java interpreter : /usr/bin/java 
Java version  : 1.8.0_131 
Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_131.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_131.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_131.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_131.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_131.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 
Updating Java configuration in /Library/Frameworks/R.framework/Resources 
Done. 

すべてのヘルプは大歓迎されます!

答えて

12

これは機能します。

異なるJavaバージョンをインストールして再インストールした後、RコマンドでrJavaを再インストールした後install.packages("rJava") Rコンソール(シェルウィンドウ)でライブラリをロードしてもエラーメッセージが表示されなくなりました。

その後、私はそれが、このシェルコマンドを実行することにより、RStudioで動作させるためにthis postに答えを使用することができました:

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

ないすべての後、あまりにも複雑! everyonesの忍耐力ありがとうございます。

0

JAVA_HOMEのパスは、MAC OSのバージョンによって異なります。場合によっては/jreフォルダがあり、場合によっては/Homeディレクタの後に手動で/serverフォルダのCDコマンドを使用して、pwdを使用してパス全体をコピーしてjava.homeを設定してから、rJavaライブラリを簡単にロードできます。これで私は問題を解決できました

options("java.home"="/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/lib") 

Sys.setenv(LD_LIBRARY_PATH='$JAVA_HOME/server') 

dyn.load('/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/lib/server/libjvm.dylib') 

library(rJava) 
関連する問題