当前位置: 首页 > 面试题库 >

R,加载rJava错误

农明辉
2023-03-14
问题内容

我在macOS sierra(10.12.5)上运行R(版本3.4.0),并且尝试使用xlsx库,该库要求使用rJava库。

当我尝试library(rJava)在R控制台中使用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

在这个问题上进行了搜索,我发现了许多类似的帖子(但每次都有一些不同的问题),其中最有前途的就是这个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命令重新安装了rJava之后,install.packages("rJava")我发现在R控制台(shell窗口)中加载库不再抛出错误消息。

从那以后,我能够使用的答案在这篇文章通过运行这个shell命令得到它在RStudio工作:

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

毕竟不太复杂!谢谢大家的耐心配合。



 类似资料:
  • 所以,这基本上是我在调用rjava时遇到的错误: 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(file,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/versions/3.6/resources/

  • 我希望在R x64 3.1.2中加载rJava。OS-Windows 8.1 64位 尽管安装似乎工作正常: 我在加载包时出错: 卸载和重新安装R似乎也不能修复问题。 删除旧的java版本也无济于事。

  • 问题内容: 我想加载rJava时出现错误。已安装JDK。(我在CentOS VM(cloudera演示vm cdh3u4)上运行R) 设置有问题吗?如果是,我该如何解决?我需要运行rJava才能稍后安装rhdfs。 一些更多信息(如果需要): 问题答案: 使rJava正常工作在很大程度上取决于您的计算机配置。以下内容至少在 Windows 平台上有效。您可以尝试检查一下,这是否也会对您的平台有所帮

  • 问题内容: 我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或RStudio时,立即弹出消息,提示我需要安装rJavaJava6 。此外,加载或依赖rJava的任何软件包(例如)都导致崩溃(R也崩溃了)当我通过直接打开尝试此操作时)。 在尝试了在和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载rJava或依赖的任何程序包

  • 问题内容: 我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或时,立即弹出消息提示我需要安装 。此外,加载或依赖rJava的任何软件包(例如xlsx)都导致RStudio崩溃(R也崩溃了)当我通过R.app直接打开尝试此操作时)。 在尝试了和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载或依赖的任何程序包不再导致R崩溃,

  • 我正在尝试将'rjava'包加载到我的Unix计算机中。在加载之前,我使用 在我的R脚本里。 如您所见,错误显示/usr/lib/jvm/jre/bin/java:没有这样的文件或目录。但我没有将其设置为MyFilePath。如何防止安装程序查看此路径? 好心的帮助。