Jar加载DLL无法找到依赖库

时间:2017-05-02 03:27:50

标签: java jar libraries

我需要加载一个DLL位于我的Jar文件中的某个地方,但每当我尝试运行Jar时,我都会收到以下错误:

java.lang.UnsatisfiedLinkError: E:\test.dll : Can't find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)

问题不是来自DLL,它被编译到64位机器,因为我的PC是64位,它没有依赖关系,只有从Jar运行时才会出现问题,当我通过我运行应用程序时Eclipse它运行良好,一切都很好。

我用来加载DLL的代码是:

File libraryFile = new File("E:\test.dll");
Runtime.getRuntime().load(libraryFile .getPath());

我使用Eclipse来存储应用程序。

修改 我尝试使用不同的应用程序Jarring,例如Jar MakerJar Builder,但没有任何帮助

编辑2 我尝试运行这个确切的应用程序,它可以在IDE中运行,但不能从Jarred文件中运行,尝试移动DLL但是也没有帮助:

public class Test {

    public static void main(String[] args) throws Exception {
        System.load("E:\\test.dll");
    }
}

1 个答案:

答案 0 :(得分:1)

您是否尝试在类路径中添加E:\ test.dll。