gpt4 book ai didi

java - 从 JAR 中提取并加载 DLL

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:33 25 4
gpt4 key购买 nike

我的 Java 应用程序使用 DLL 库。如何从 JAR 文件中获取它?

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

最佳答案

在尝试加载 dll 之前,您需要将 dll 放入库路径中(推荐)。这样您就必须从 jar 中提取它并将其复制到 lib 路径中。

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 是持有静态方法的类

关于java - 从 JAR 中提取并加载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50817671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com