Java R接口(JRI)设置

Java R接口(JRI)设置,java,r,interface,jri,Java,R,Interface,Jri,我正在尝试设置Java/R接口(捆绑在R“rJava”包中),但是我遇到了一些问题(尽管在这里和其他论坛上尝试了许多建议) 我正在运行Windows7、jdk1.7.0_05、Eclipse、R2.15.2。这些都是64位安装 我尝试运行该示例所遵循的步骤如下: 在R GUI中安装rJava:Install.packages('rJava')-安装到C:\Users\USERNAME\Documents\R\win library\2.15\rJava\ 设置环境变量:R\u HOME=“C:\

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

我正在运行Windows7、jdk1.7.0_05、Eclipse、R2.15.2。这些都是64位安装

我尝试运行该示例所遵循的步骤如下:

  • 在R GUI中安装rJava:Install.packages('rJava')-安装到C:\Users\USERNAME\Documents\R\win library\2.15\rJava\
  • 设置环境变量:R\u HOME=“C:\Program Files\R\R-2.15.2”,添加到PATH=“C:\Program Files\Java\jdk1.7.0\u 05\bin”;“C:\ProgramFiles\Java\jdk1.7.0\U 05\jre\bin\server”;“C:\ProgramFiles\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本机库! 请确保JRI本机库位于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.lang.UnsatisfiedLinkError:C:\Users\USERNAME\Documents\R\win library\2.15\rJava\jri\x64\jri.dll:找不到依赖库
    位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
    位于java.lang.ClassLoader.loadLibrary1(未知源)
    位于java.lang.ClassLoader.loadLibrary0(未知源)
    位于java.lang.ClassLoader.loadLibrary(未知源)
    位于java.lang.Runtime.loadLibrary0(未知源)
    位于java.lang.System.loadLibrary(未知源)
    位于org.rosuda.JRI.Rengine(Rengine.java:19)
    位于test.JRITest.main(JRITest.java:64)
    
    我已经验证了“java.library.path”的设置是否符合预期,因为:System.out.println(“JLP=“+System.getProperty”(“java.library.path”);输出正确的路径

    我认为rJava可能没有完全安装(已经尝试重新安装),但我不确定如何检查这一点。“…\rJava\jri”或其任何子目录中唯一的JAR是“jri.JAR”,示例目录似乎不完整

    有人对这里可能出现的问题有什么建议吗

    JRI网站()今天似乎已经关闭了,不确定是否有人知道另一个下载源(除了直接从CRAN下载)

    谢谢。

    尝试将R目录中的所有dll文件(*.dll)复制到JAVA_路径/bin。然后加载jri本机库,如:

    //Right under your R class
       static {
        System.loadLibrary("jri");      
       }
    
    我也有同样的问题,用这种方法解决了


    Thx

    这里还有另一个选项:将DLL所在的rJava和R目录添加到PATH变量中,可以是在计算机级别,也可以是这样的ant脚本(64位安装为x64,32位安装为i386,具体取决于本地安装):


    伙计们,经过几天的尝试和失败,我找到了我的最终解决方案,如:

    • 必须将以下文件复制到目录
      C:/Program files/RapidMiner/RapidMiner Studio/jre/bin/

      • jri.dll
        from
        C:/Users/Public/Documents/Documentos/R/win library/3.0/rJava/jri/x64/
      • 来自
        C:/Program files/R/R-3.0.3/bin/x64/
    • 因此,在RM Studio
      工具
      选项卡
      首选项
      选项,
      启动
      选项卡上,检查
      Initialize extensions
      后,
      extensions目录必须是
      C:\Program Files\RapidMiner\RapidMiner Studio\jre\bin\R.exe
      ,并且在
      R
      选项卡上
      Native lib
      必须是
      C:\Program Files\RapidMiner\RapidMiner Studio\jre\bin\jri.dll


    很简单,不是吗?谢谢大家的建议。

    我也收到了同样的问题。通过将R bin添加到路径解决(我的操作系统是x64)

    无论如何,您可以使用这个工具找出哪个dll是依赖的

    在阅读了大量帖子并尝试了许多不同的解决方案后,它终于开始工作了。我使用的是64位Windows 7,我将列出使其正常工作的步骤

  • 使用R
    Install.packages(“rJava”)安装程序包rJava
  • 右键单击我的计算机>属性>高级系统设置>环境变量
  • 查找Var路径或类路径并进行编辑,添加以下路径:C:\Program Files\R\R-3.4.0\bin\x64;C:\Users\[User Name]\Documents\R\win library\3.4\rJava\jri\x64
  • 转到C:\Program Files\R\R-3.4.0\bin\x64并复制所有.dll文件(它们是:R.dll、Rblas.dll、Rgraphapp.dll、Riconv.dll、Rlapack.dll)
  • 在C:\Program Files\Java\jdk1.8.0\u 144\bin中通过它们
  • 创建java项目时,请记住将JRI.jar、JRIEngine.jar和Rengine.jar添加到项目构建路径中。它们位于C:\Users\[User name]\Documents\R\win library\3.4\rJava\jri
  • 完成所有这些之后,我仍然遇到一个错误,当我转到C:\Users\[User Name]\Documents\R\win library\3.4\rJava\jri\x64并在我的Java项目中复制jri.dll和过去时解决了这个问题,如下图所示:
  • 下面是一个代码示例及其输出:


    此示例来自:

    您解决过这个问题吗?我使用的环境与您描述的几乎相同(Win 7 x64、JRE 1.8.0_144、Eclipse Oxygen)。我做了上面描述的所有调整,但是我/你的示例程序在调用Rengine构造函数时仍然终止。你有没有其他的提示或调整可能会有所帮助?事实上,我正在与Rserve know合作,它工作得很好。也许你可以提供更多关于你得到的错误的细节。
    <java fork="true" classname="${run.class}">
      <env key="PATH" path="C:/Users/myuser/Documents/R/win-library/3.0/rJava/jri/x64;C:/Program Files/R/R-3.0.2/bin/x64"/>
      <classpath>
         <path refid="run.test.classpath"/>
      </classpath>
    </java>
    
    path=C:\Program Files\R\R-3.2.2\bin\x64