使用想法使用程序将dll库添加到java

saj*_*jad 3 java vlc jvlc intellij-idea

我正在尝试添加并使用一个名为JVLC的程序到我的程序中.我下载了一个zip文件,其中包含用于java接口的jar文件(jvlc.jar)和2个dll文件(jvlc.dll,libvlc.dll)以及包含许多dll文件的文件夹.当我运行我的程序时,会出现UnsatisfiedLinkError.我用这段代码将这两个dll文件添加到我的项目中.

System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");
Run Code Online (Sandbox Code Playgroud)

但仍然有错误:

UnsatisfiedLinkError:目录分隔符不应出现在库名称中

是否有必要将所有文件夹添加到库路径?如果有,怎么样?

请指导我.

Buh*_*ndi 6

System.loadLibrary方法基于库名称(libName,没有扩展名)而不是通过文件名加载库.例如,Java附带了一个zip.dll/zip.so(Linux),当我们使用Zip Deflater/Inflater类来获取zip文件时使用它.

如果要使用指定dll文件名,请使用该System.load(String filename)方法,在java lib路径中注册DLL.

这里可以找到一个例子.


举个例子,请这样做:

//Your code....
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");

//Replace with this...
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll");
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll");
Run Code Online (Sandbox Code Playgroud)