3

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

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

但仍然有错误:

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

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

请指导我。

4

2 回答 2

6

The System.loadLibrary method loads a libary based on a library name (libName, without extension) and not through file name. Example, Java comes with a zip.dll / zip.so (Linux) that is used when we use the Zip Deflater/Inflater classes for zip files.

If you want to use specify a dll file name, use the System.load(String filename) method otherwise, register your DLL in a java lib path.

An example can be found here.


For your example, please do this:

//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");
于 2010-10-18T16:27:20.813 回答
0

根据本教程

  • 您需要设置LD_LIBRARY_PATH(在 Linux/Unix 上)或PATH(Windows)包括库所在的目录。
  • 你不需要.dll后缀。
于 2010-10-18T16:24:51.873 回答