没有找到JRI的库

时间:2014-04-02 21:20:45

标签: java r

我在Windows 7上使用32位R 3.0.2和Java jdk1.7.0_45为NetBeans 7.4设置了一个JRI项目,使用了here概述的步骤。

当我打电话时

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,我复制了

中的所有dll
C:\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,但问题仍然存在。

1 个答案:

答案 0 :(得分:1)

我不得不重启NetBeans。这解决了问题。

事实上,我发现这部分是不必要的。

 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"