我正在尝试设置Java/R接口(interface)(捆绑在R“rJava”包中),但遇到了一些麻烦(尽管在这里和其他论坛上尝试了许多建议)。

我正在运行Windows 7,jdk1.7.0_05,Eclipse,R 2.15.2。这些都是64位安装。

我尝试使示例运行的步骤如下:

  • 在R GUI中安装rJava:install.packages('rJava')-安装到C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\
  • 设置环境变量:R_HOME =“C:\Program Files\R\R-2.15.2”,对PATH的添加=“C:\Program Files\Java\jdk1.7.0_05\bin”;“C:\Program Files\Java\jdk1.7.0_05\jre\bin\server“;” C:\Program Files\R\R-2.15.2\bin\x64“;” C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64“
  • 在Eclipse中设置示例项目,设置VM参数:-Djava.library.path =“C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64”
  • 重新启动R并使用以下命令加载rJava:libraries('rJava')
  • 运行示例程序,获得以下异常:

  • 找不到JRI native 库!
    请确保JRI native 库位于java.library.path中列出的目录中。
    java.lang.UnsatisfiedLinkError: C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64\jri.dll: Can't find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(Unknown Source)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:19)
        at test.JRITest.main(JRITest.java:64)
    

    我已经验证了“java.library.path”的设置是否符合预期,因为:System.out.println(“JLP =” + System.getProperty(“java.library.path”)));输出正确的路径。

    我认为rJava可能尚未完全安装(已尝试重新安装),但是我不确定如何进行检查。 “...\rJava\jri”或其任何子目录中唯一的JAR是“JRI.jar”,并且examples目录似乎不完整。

    有人对这里可能出什么问题有任何建议吗?

    看来JRI网站(http://www.rforge.net/JRI/index.html)今天已经关闭,不确定是否有人知道可以从其他来源下载(而不是直接从CRAN下载)。

    谢谢。

    最佳答案

    尝试将R目录中的所有dll文件(* .dll)复制到JAVA_PATH/bin。之后,加载jri native 库,如下所示:

    //Right under your R class
       static {
        System.loadLibrary("jri");
       }
    

    我有同样的问题,并通过这种方法解决了。

    谢谢

    关于Java R接口(interface)(JRI)设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19100875/

    10-09 00:25