1

我正在尝试使用JVLC,但似乎无法正常工作。我已经下载了 jar,安装了VLC并将 -D 参数传递给 JVM,告诉它 VLC 的安装位置。我也试过:

NativeLibrary.addSearchPath("libvlc", "C:\\Program Files\\VideoLAN\\VLC");

没有运气。我总是得到:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载库“libvlc”:找不到指定的模块。

有没有人让它工作?

4

4 回答 4

1

如果您尝试加载的 dll 需要其他不可用的 dll,则您可以获得该异常。抱歉,我无法提供更具体的帮助,但需要检查一下。您可以使用依赖来遍历 dll 依赖项。

于 2008-09-24T14:44:51.783 回答
1

我也有同样的问题,我注意到它只发生在 64 位 jdk/jre 上。在 Win7 x64 下使用 32 位 jdk 像魅力一样工作。

有一个很好的编码!

-Sipe

于 2011-03-28T12:54:50.993 回答
1

不确定那个 NativeLibrary 类。通常在使用本机库时,您需要将系统属性“java.library.path”设置为本机库的位置。如建议的那样,如果您的本机库(dll、so 等)依赖于其他本机库,则操作系统将接管以解决这些依赖关系。通过搜索本机库的操作系统特定路径,操作系统将不知道 java.library.path 和 beging。在 windows 上,这包括当前的 PATH 环境变量以及 windows 目录中的 System32。在 linux 上,这是 LD_LIBRARY_PATH / ld.conf 设置。

尝试将 PATH (LD_LIBRARY_PATH) 设置为指向与 java.library.path 相同的位置。唯一的问题是你不能设置这个你的进程启动(JVM),已经太晚了。您需要在 JVM 启动之前设置环境。您可以通过批处理文件、shell 脚本、Ant 或直接从您的 IDE 执行此操作。

于 2008-09-24T16:29:20.520 回答
1

你应该试试

System.load("C:\\Path\\To\\libvlc.dll");

至少要验证您的库是否可以加载。如果没有,它可能会给你有用的错误信息(它对我有用)。

(正如 Sipe 所提到的,您可能正在使用 64 位 JRE/JDK,在这种情况下将永远找不到 libvlc(它只是 32 位)。在这种情况下,您必须切换到使用 32 位 JRE/JDK。)

于 2011-05-08T10:24:14.850 回答