[英]How to export a runnable JAR embedding a native library in Eclipse?
我有一个使用本机库的 Java 应用程序。 当我导出可运行的 JAR 时它工作正常,但我必须将本机库放在可执行文件的同一文件夹中。
不确定是否存在这样做的过程,因为它是本机库,但是,是否存在避免将库放入同一文件夹并将该库嵌入到可运行 JAR 中的方法?
我使用 Eclipse,我用来启用本机库的成功工作过程如下(这可能对解决此问题的人有所帮助):
为了详细说明我在评论中指出的答案,可以在 JAR 中部署本机库。 但是你必须在你的代码中提供这一点。 您必须以一种方式编写代码
getResourceAsStream()
给你的内容)load()
而不是loadLibrary
)例子:
Path tempPath = Paths.get("some/path");
try (InputStream inputStream = myClass.getResourceAsStream("myLibrary")) {
Files.copy(inputStream, tempPath);
}
System.load(tempPath.toAbsolutePath().toString());
请注意,某些恶意软件扫描程序会阻止从临时目录中加载库,因此您必须谨慎选择目标路径。
看看这里: https : //github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo031
这个想法很简单:
请注意,库通常是从文件系统加载的,不可能从缓冲区加载它们。 这就是您必须创建临时位置的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.