我正在使用netbeans来使用vlcj jar我的jdk是 jdk-7u45-windows-x64 而我的 vlc是64b 我通过去图书馆然后右边安装了库单击库文件,然后添加jar /文件夹,我添加了文件,我从这里下载file link文件名 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.<init>(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)
答案 0 :(得分:10)
vlcj依赖于JNA。
因此,您需要将JNA和JNA Platform jar文件添加到项目中。如何执行此操作取决于您自己的项目和您正在使用的IDE。最基本的方法是从链接[1]和[2]下载jar文件,并将它们复制到包含vlcj jar文件的同一目录。
在vlcj jar文件中声明的清单类路径引用这些JNA jar - 这意味着您只需要确保将jar文件复制到项目中的正确位置,您不必显式添加它们到您的项目类路径。
我认为如果你使用Maven会更简单,但无论如何......
正确安装库之后,下一个问题是让JVM加载本机库。
您可以出于多种原因获得UnsatisfiedLinkError,最常见的是:
使用JNA加载本机库时,有多种方法可以设置搜索路径......
这在[3]中有解释,但总结一下,最简单的方法是在应用程序中添加这样的代码:
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "the-directory");
此语句告诉JNA查找特定目录以查找LibVLC共享对象(Windows上的DLL)。
替换文字字符串&#34; -directory&#34;使用磁盘上包含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。
答案 1 :(得分:0)
是的,但我的问题是jvm,我认为32b所以我通过下载来改变它在这里形成java jvm这个页面有32和64类型