【发布时间】:2014-04-03 23:33:23
【问题描述】:
我使用 32 位 R 3.0.2 和 Java jdk1.7.0_45 在 Windows 7 上使用here 概述的步骤为 NetBeans 7.4 设置了一个 JRI 项目。
当我打电话时
Rengine.versionCheck()
我得到了以下
找不到 JRI 原生库! 请确保 JRI 本机库位于 java.library.path 中列出的目录中。
java.lang.UnsatisfiedLinkError: C:\Program Files\R\R-3.0.2\library\rJava\jri\jri.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:19)
at rjava.RJava.main(RJava.java:40)
Java Result: 1
按照here的建议,我从
复制了所有的dllC:\Program Files\R\R-3.0.2\bin\i386
到包含 java.exe 的目录。我也在项目上右键选择了
Properties:Run:VM Options
并添加
-Djava.library.path="C:\Program Files\R\R-3.0.2\library\rJava\jri;C:\Program Files\R\R-3.0.2\library\rJava\jri\i386"
问题仍然存在。我尝试将以下内容添加到我的代码中。
System.loadLibrary("jri");
这导致
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\R\R-3.0.2\library\rJava\jri\jri.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at rjava.RJava.main(RJava.java:39)
Java Result: 1
我已完成here 建议的所有操作,但问题仍然存在。
【问题讨论】: