【问题标题】:rJava doesn't load in R 3.4.2 and MacOS Sierra 10.12.6rJava 无法在 R 3.4.2 和 MacOS Sierra 10.12.6 中加载
【发布时间】:2017-11-02 20:01:59
【问题描述】:

这是我得到的错误:

> library(rJava)
Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so':
  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

我知道这绝不是一个独特的问题。我尝试了hereherehere 的解决方案。没有成功。

更多细节:我正在使用 R GUI,但我也无法通过 R 终端加载 rJava。 R 3.3.s 上的 rJava 也没有任何问题

【问题讨论】:

    标签: r macos rjava


    【解决方案1】:

    你有两个选择:

    1. 获取旧版本的 R 并使用预编译版本的 rJava

    2. 获取 rJava 源代码并自己编译

    请注意,rJava(最新资源)需要一些未嵌入 XCode 和 clang 的功能,这些功能可通过 AppStore 获得。在构建 rJava 包时,您需要做一些低级的工作。

    您可以在这里找到详细说明:http://www.owsiak.org/r-3-4-rjava-macos-and-even-more-mess/

    如果您决定使用旧版本的 R,仍然很难使其正常工作,但要做的事情更少:http://www.owsiak.org/r-java-rjava-and-macos-adventures/

    【讨论】:

    • 我降级到 R 3.3 并让它工作正常。但我宁愿不必使用旧版本的 R。将尝试您的第二个解决方案。
    • 这里的问题是二进制版本的包 - 对于 macOS - 尚未发布。因此,您需要自己构建它。但是,还有其他一些限制使流程变得更复杂:(
    【解决方案2】:

    不同版本的 MAC OS 的 JAVA_HOME 路径不同。 在某些情况下有/jre 文件夹,在某些情况下它不是在/Home 导演之后手动使用/server 文件夹在终端中使用CD 命令并使用pwd 复制整个路径使用它来设置@ 987654327@ 然后您可以轻松加载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)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2017-10-16
    相关资源
    最近更新 更多