【问题标题】:Can't find dependent libraries when trying to load JRI尝试加载 JRI 时找不到依赖库
【发布时间】:2015-03-19 05:31:07
【问题描述】:

我有一段尝试加载 JRI 模块的简单代码。

 public static void main(String... args) {
    System.out.println(System.getProperty("java.library.path").toString());
    System.setProperty("jri.ignore.ule", "yes");
    System.loadLibrary("jri");
}

我将 java.library.path 作为 VM 参数传递,但 JRI 无法加载并出现以下错误:

C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri;C:\Users\Abhishek\Documents\R\win-library\3.1\rJava
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri\jri.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at pack.TestJRI.main(TestJRI.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

提前感谢您的帮助。

【问题讨论】:

  • 为什么不直接将 Jar 文件加载到项目中,然后添加所需的导入?

标签: r jri


【解决方案1】:

我知道该帖子相对较旧,这可能无法回答 OP 的问题,但肯定会帮助遇到类似情况的其他人。

尽管您通过参数传递了java.library.path,但您应该通过PATH 环境变量显式设置DLL 文件的位置。

提供了对类似问题的快速参考here,但不是在R 的上下文中,而是完全不同的DLL

另一方面,您可以在命令提示符下运行此命令来检查环境变量 PATH...的值...

java -XshowSettings:properties -version

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    相关资源
    最近更新 更多