我正在使用netbeans使用vlcj jar我的jdk是jdk-7u45-windows-x64我的vlc是64b我通过去库安装库然后右键单击库文件然后添加jar /文件夹我添加了我下载的文件它从这里文件链接文件名vlcj-3.0.0-dist.zip我解压缩然后通过选择它们添加它所有的测试代码是这个
package translater; import uk.co.caprica.vlcj.binding.LibVlc; import uk.co.caprica.vlcj.runtime.RuntimeUtil; import com.sun.jna.Native; /** * * @author isslam */ public class Translater { /** * @param args the command line arguments */ public static void main(String[] args) { GuiClass is = new GuiClass("AnimeFactor"); is.setVisible(true); Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); } }
错误信息是这样的
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': JNA native support (win32-amd64/libvlc.dll) not found in resource path (C:\Users\isslam\Desktop\vlcj-2.4.1-dist\vlcj-2.4.1\jna-3.5.2.jar;C:\Users\isslam\Desktop\vlcj-2.4.1-dist\vlcj-2.4.1\platform-3.5.2.jar;C:\Users\isslam\Desktop\vlcj-2.4.1-dist\vlcj-2.4.1\vlcj-2.4.1.jar;C:\Users\isslam\Documents\NetBeansProjects\translater\build\classes) at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:220) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322) at com.sun.jna.Library$Handler.(Library.java:142) at com.sun.jna.Native.loadLibrary(Native.java:387) at com.sun.jna.Native.loadLibrary(Native.java:366) at translater.Translater.main(Translater.java:27)
caprica.. 10
vlcj依赖于JNA.
因此,您需要将JNA和JNA Platform jar文件添加到项目中.如何执行此操作取决于您自己的项目和您正在使用的IDE.最基本的方法是从链接[1]和[2]下载jar文件,并将它们复制到包含vlcj jar文件的同一目录中.
在vlcj jar文件中声明的清单类路径引用这些JNA jar - 这意味着您只需要确保将jar文件复制到项目中的正确位置,您不必将它们显式添加到项目中阶级路径.
我认为如果你使用Maven会更简单,但无论如何......
正确安装库之后,下一个问题是让JVM加载本机库.
出于多种原因,您可以获得UnsatisfiedLinkError,最常见的是:
您尝试加载的共享对象(DLL)无法找到;
您正在尝试混合CPU架构,即您的JVM是64位,但您的本机库是32位(反之亦然).这永远不会奏效.
使用JNA加载本机库时,有多种方法可以设置搜索路径...
这在[3]中有解释,但总结一下,最简单的方法是在应用程序中添加这样的代码:
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "the-directory");
该语句告诉JNA查看特定目录以查找LibVLC共享对象(Windows上的DLL).
您将文字字符串"the-directory"替换为磁盘上包含libvlc.dll和libvlccore.dll文件的目录的完整路径(如果您使用的是Linux,则替换为等效的.so文件).
没有64位或32位版本的vlcj - 它只是平台独立的Java.
[1]:http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna%7C4.0.0%7Cjar
[2]:http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna-platform%7C4.0.0%7Cjar
[3]:http://www.capricasoftware.co.uk/projects/vlcj/tutorial1.html
如果您使用的是vlcj 3.0.0或更高版本,则上述依赖项(以及指向工件的链接)是正确的.如果您使用的是早期版本的vlcj,例如2.4.1,那么您需要使用JNA和JNA Platform版本3.5.2而不是4.0.0.
vlcj依赖于JNA.
因此,您需要将JNA和JNA Platform jar文件添加到项目中.如何执行此操作取决于您自己的项目和您正在使用的IDE.最基本的方法是从链接[1]和[2]下载jar文件,并将它们复制到包含vlcj jar文件的同一目录中.
在vlcj jar文件中声明的清单类路径引用这些JNA jar - 这意味着您只需要确保将jar文件复制到项目中的正确位置,您不必将它们显式添加到项目中阶级路径.
我认为如果你使用Maven会更简单,但无论如何......
正确安装库之后,下一个问题是让JVM加载本机库.
出于多种原因,您可以获得UnsatisfiedLinkError,最常见的是:
您尝试加载的共享对象(DLL)无法找到;
您正在尝试混合CPU架构,即您的JVM是64位,但您的本机库是32位(反之亦然).这永远不会奏效.
使用JNA加载本机库时,有多种方法可以设置搜索路径...
这在[3]中有解释,但总结一下,最简单的方法是在应用程序中添加这样的代码:
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "the-directory");
该语句告诉JNA查看特定目录以查找LibVLC共享对象(Windows上的DLL).
您将文字字符串"the-directory"替换为磁盘上包含libvlc.dll和libvlccore.dll文件的目录的完整路径(如果您使用的是Linux,则替换为等效的.so文件).
没有64位或32位版本的vlcj - 它只是平台独立的Java.
[1]:http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna%7C4.0.0%7Cjar
[2]:http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna-platform%7C4.0.0%7Cjar
[3]:http://www.capricasoftware.co.uk/projects/vlcj/tutorial1.html
如果您使用的是vlcj 3.0.0或更高版本,则上述依赖项(以及指向工件的链接)是正确的.如果您使用的是早期版本的vlcj,例如2.4.1,那么您需要使用JNA和JNA Platform版本3.5.2而不是4.0.0.