我在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,我复制了
中的所有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,但问题仍然存在。
答案 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"