当前位置: 首页 > 知识库问答 >
问题:

rJava未在R中加载

长孙阳州
2023-03-14

所以,这基本上是我在调用rjava时遇到的错误:

库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(file,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/versions/3.6/resources/libramework/r.framework/versions/3.6/resources/libramework/libs/rJava.so”:dlopen(

下面是我在解决这个问题时运行的一些R&Terminal脚本:

1)也返回了此错误

$ sudo R CMD javareconf
Password:
Java interpreter : /usr/bin/java
Java version     : 13.0.1
Java home path   : /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

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. -ljvm
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/include/darwin  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -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. -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
ld: library not found for -ljvm
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [conftest.so] Error 1
Unable to compile a JNI program


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Java library path:
JNI cpp flags    :
JNI linker flags :
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

2)

> Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home')
> dyn.load('/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/lib/server/libjvm.dylib')

3)

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

如果这有帮助:

> Sys.getenv("DYLD_FALLBACK_LIBRARY_PATH")
[1] "/Library/Frameworks/R.framework/Resources/lib:/Users/paulwoo/lib:/usr/local/lib:/usr/lib:::/lib:/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/lib/server"
> Sys.getenv("DYLD_LIBRARY_PATH")
[1] "/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/lib/server"

但这些都没有解决问题。我也重新安装了几次rJava包。我最好的猜测是这与版本之间的不匹配有关,但我不知道该怎么做。

还有其他建议吗?

共有1个答案

东门晟
2023-03-14

使用OSX卸载程序工具来破坏您当前安装的JDK。

重新安装(打开)JDK

brew tap AdoptOpenJDK/openjdk
brew install adoptopenjdk13-openj9-large

然后重新配置RJava:

sudo R CMD javareconf

这个应该能奏效。

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

  • 问题内容: 我在macOS sierra(10.12.5)上运行R(版本3.4.0),并且尝试使用xlsx库,该库要求使用rJava库。 当我尝试在R控制台中使用rJava加载时(无论是在RStudio中还是在终端中),都会收到以下错误消息,使我难以理解: 在这个问题上进行了搜索,我发现了许多类似的帖子(但每次都有一些不同的问题),其中最有前途的就是这个SO问题。 由于建议的步骤需要适应我的情况,

  • 问题内容: 我最近从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崩溃,

  • 问题内容: 我无法致电中的包裹。我收到以下消息 尝试重新安装软件包时出现错误。我提供了输出 我正在使用Ubuntu 13.04。我也尝试过这无助于解决问题。关于jni.h,这里有一些解决方案。但是,不确定如何在这里使用解决方案。 问题答案: 我遇到了完全相同的问题。我的解决方案是通过安装openjdk-7- * 跟着 然后我就可以通过R在R中安装rJava 。 虽然可能不是最优雅的解决方案,但它似

  • 问题内容: 我在带有R版本3.5.1的Ubuntu 18.04计算机上,通过此链接安装。我试图安装CRAN包 rJava ,这是我做下面的方式(如看到这里): 但是,我得到这个: 但是当我尝试: 我得到: 如何克服这个问题呢?基本上,我需要安装才能安装和使用。在Ubuntu 16.04中,我没有任何问题。 编辑: 显然,应由提供。我确实已经安装了最新版本,为什么我仍然看到错误? 问题答案: API