2017-05-24 4 views
4

MacOS sierra (10.12.5)에서 R (버전 3.4.0)을 실행 중이며 rJava 라이브러리를 사용해야하는 xlsx 라이브러리를 사용하려고합니다.R, 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 
: 나는 R 콘솔에서 (차이 RStudio 또는 터미널의 경우) library(rJava)를 사용하지 rJava를로드 할 때

, 나는이의 문제가 만드는 감각을 다음과 같은 오류 메시지가 있어요 취득하는

문제를 찾아 다니면서 다소 비슷한 (그러나 약간 다른 문제가 발생할 때마다) 수많은 게시물을 발견했지만 this SO question이 가장 유망한 것으로 나타났습니다.

제안 된 단계는 필자의 경우에 적응해야하기 때문에 초보자 일 뿐이므로이를 구현할 수 없었습니다. 내가 무엇을 할 수 있을지?

추가 정보 :

쉘 명령 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

다른 버전의 MAC OS에서는 JAVA_HOME 경로가 다릅니다. 어떤 경우에는 /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) 
관련 문제