我有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上测试了此软件的早期开发版本,并且在没有以上任何条件的情况下就可以立即使用。