R,加载rJava错误
我在macOS sierra(10.12.5)上运行R(版本3.4.0),我正在尝试使用需要使用rJava库的xlsx库。
当我尝试在R控制台中使用library(rJava)
加载rJava时library(rJava)
如果在RStudio或终端中没有区别),我收到以下错误消息,我无法理解:
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
谷歌搜索问题我发现一些post有些相似(但每次都略有不同的问题), 这个SO问题是最有希望的。
由于提议的步骤需要适应我的情况,而且我是一个新手,我无法实现它们。 我能做什么?
附加信息:
shell命令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)
shell命令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.
任何帮助将不胜感激!
有用!
在安装并重新安装不同的java版本并使用R命令install.packages("rJava")
重新安装rJava之后,我得到了在R控制台(shell窗口)中加载库不再抛出错误消息的程度。
之后我能够使用这篇文章中的答案通过运行这个shell命令让它在RStudio中工作:
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
毕竟不是太复杂! 谢谢大家耐心等待。
不同版本的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)