我有Java代码,需要在具有Raspbian的Raspberry Pi 3 B +上使用Vlcj库。但是,当启动NativeDiscovery.discover()时,我收到“找不到vlc库”消息。我尝试在“ / usr / bin /”上使用addSearchPath()失败。

我该如何解决我的问题?谢谢

最佳答案

您的JVM需要知道在哪里可以找到libvlc.so和VLC插件。

它们不在“ / usr / bin”中。

有多种方法可以尝试解决此问题,最简单的方法就是使用LD_LIBRARY_PATH。

找到包含libvlc.so的目录后,可以在启动应用程序时指定LD_LIBRARY_PATH环境变量。

在我的Pi上,libvlc.so位于/ usr / lib / arm-linux-gnueabihf中,因此类似(类路径中给定的jar文件只是示例):

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf java -cp vlcj.jar:jna.jar:jna-platform.jar:your-app.jar


这可能足以使其正常工作,但可能并非如此。 LibVlc可能会抱怨无法找到其插件。

如果是这样,请找到插件的安装位置(在找到libvlc.so的目录下应该有一个名为“ plugins”的目录)。

在我的Pi上,这些文件位于/ usr / lib / arm-linux-gnueabihf / vlc / plugins中。

现在,您将VLC_PLUGIN_PATH设置为指向该目录:

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf VLC_PLUGIN_PATH=/usr/lib/arm-linux-gnueabihf/vlc/plugins java -cp vlcj.jar:jna.jar:jna-platform.jar:your-app.jar


您可以在配置文件中或其他内容中设置这些环境变量,而不需要在命令行中指定。

vlcj的本机发现机制通常会尝试为您解决所有这些麻烦,但是(当前)它不了解Raspberry Pi,因此您必须自己做。

vlcj的下一个主要版本(将为4.0.0)具有改进的本机发现机制。我在我的Pi上测试了此软件的早期开发版本,并且在没有以上任何条件的情况下就可以立即使用。

09-09 21:17
查看更多