尝试使用Java(JNA)中的DLL。 无法加载库exception

我从教程中获得了NetBeans项目,导致exception:

线程“main”中的exceptionjava.lang.UnsatisfiedLinkError: Unable to load library ‘simpleDLL’:找不到指定的模块。

试图将simpleDLL.dll放在项目库中,将文件复制到system32文件夹中没有成功。

我在加载DLL时遇到了同样的问题,我用这种方式解决了它:

  • 正如Christian Kuetbach所说,检查你使用的simpleDLL是否与你的处理器架构兼容,32位DLL不能在64位机器上运行,而且64位DLL也无法在32位机器上运行钻头机。
  • 如果DLL兼容,那么问题可能出在您的java库路径中。 我将我的DLL放入user.dir目录,然后我使用了这段代码:

    将Java库路径设置为user.dir或您想要的其他路径:

     String myLibraryPath = System.getProperty("user.dir");//or another absolute or relative path System.setProperty("java.library.path", myLibraryPath); 

    加载库:

    的System.loadLibrary( “libraryWithoutDLLExtension”);

它对我有用,尝试并告诉我它是否适合你。

请检查simpleDLL是32位还是64位。 然后检查,如果JVM也是32位或64位。 他们必须是同一个平台。

如果将loadLibrary()更改为load() ,也可以指定绝对路径: http : //www.chilkatsoft.com/p/p_499.asp

我只能在32位(Xp)运行。

将DLL放在“c:\ Windows \ System32”文件夹中

helloWorldDLL lib =(helloWorldDLL)Native.loadLibrary(“helloworldDLL”,helloWorldDLL.class);

如果错误java.lang.UnsatisfiedLinkError:无法加载库“持久存在,请使用Dependency Walker查看依赖的DLL。

依赖沃克