如何修复Java JNI DLL依赖项

时间:2009-09-02 15:40:55

标签: java dll dependencies java-native-interface

我有一个Java应用程序,它必须加载具有一些依赖项的DLL。我在同一个文件夹中复制了所有必需的DLL。我设置的DLL使用SeeingMachine FaceApi库。现在,当我启动Java应用程序时,我将收到错误,我的DLL无法找到依赖项:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\[..]\bin_dbg\HeadTrackerDLL.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.loadLibrary0(Unknown Source)
            at java.lang.System.loadLibrary(Unknown Source)
            at Tracker.<clinit>(Tracker.java:12)
            at TrackerControls.<init>(TrackerControls.java:18)
            at Main.main(Main.java:6)

我该如何解决这个问题?因为Dependency Walker没有显示任何错误。我不想手动加载所有DLL文件。

1 个答案:

答案 0 :(得分:2)

所以我想我用mt.exe工具解决了我的问题。

mt.exe -manifest HeadTrackerDLL.dll.intermediate.manifest -outputresource:HeadTrackerDLL.dll;

使用此代码行,清单文件和dll文件将打包到dll文件中,以便找到所有依赖项。

我的应用程序运行。我希望这是解决方案。