从JAR提取并加载DLL

我的Java应用程序使用DL​​L库。我如何从JAR文件中使用它?

DLL位于项目的源文件夹中。我必须将其包含在我的JAR中,在运行时将其提取(在jar的同一目录中)并加载它。

回答:

尝试加载dll之前,需要将dll放入库路径(推荐)。因此你将不得不从jar中提取它并将其复制到lib path中。

private void loadLib(String path, String name) {

name = System.mapLibraryName(name); // extends name with .dll, .so or .dylib

InputStream inputStream = null;

OutputStream outputStream = null;

try {

inputStream = getClass().getResourceAsStream("/" + path + name);

File fileOut = new File("your lib path");

outputStream = new FileOutputStream(fileOut);

IOUtils.copy(inputStream, outputStream);

System.load(fileOut.toString());//loading goes here

} catch (Exception e) {

//handle

} finally {

if (inputStream != null) {

try {

inputStream.close();

} catch (IOException e) {

//log

}

}

if (outputStream != null) {

try {

outputStream.close();

} catch (IOException e) {

//log

}

}

}

}

注意: ACWrapper是持有静态方法的类

以上是 从JAR提取并加载DLL 的全部内容, 来源链接: utcz.com/qa/411150.html

回到顶部