vlcj jna unsatisfied link错误无法定位本机库

Vlcj jna unsatisfied link error unable to locate native libraries

我已经看过链接

  1. Link 1

  2. Link 2

  3. Link 3

这些是我的系统规格

  1. Windows 64 位

  2. Java 11 64 位

  3. VLC 32 位

  4. vlcj 3.5.0 downloaded with maven

这是我的代码

NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(),"C:Program Files (x86)\VideoLAN\VLC");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(),LibVlc.class);

这是我的错误

java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': JNA native support (win32-amd64/libvlc.dll) not found in resource path (C:\Program Files\Java\Vlcj\jna-3.5.2.jar;C:\Program Files\Java\Vlcj\platform-3.5.2.jar;C:\Users\Home\Documents\NetBeansProjects\JDK Examples\Chat Application\Tests\build\classes)

现在我知道你不应该使用 64 位 JRE 加载 VLC 32 位库,这就是为什么我不希望这个程序工作(或者也许我不知道)但是错误消息以 IA32 或类似开头的东西可能会有所不同,但事实并非如此,正如您所看到的,尽管使用 NativeLibrary class 添加了搜索路径,但 Native class 似乎正在搜索 jar 文件中的 dll & 在我的项目路径中,但不在我明确提到的搜索路径中,所以我的本地人甚至无法找到 dll 文件。

有人帮忙吗?

我通过 3 个步骤解决了我的问题

1) 使用第一条评论中 link 建议的本机发现,因为 NativeLibrary.addSearchPath 没有做任何事情所以我删除了该行并将其替换为

new NativeDiscovery().discover();

2)使用vlc 64位

2) 由于某些原因,“主要修复”将我的 JDK 从 11 降级到 1.8 22=],我无法理解,但正是这一主要变化让 NativeDiscovery 得以发挥作用