如何导出在Eclipse中嵌入本机库的可运行JAR?

问题描述 投票:0回答:2

我有一个使用本机库的Java应用。当我导出可运行的JAR时,它工作正常,但是我必须将本机库放在可执行文件的同一文件夹中。

[由于它是一个本机库,因此不确定是否存在执行此操作的过程,但是,是否存在一种避免将库放入同一文件夹并将该lib嵌入可运行的JAR内的方法?

我使用Eclipse,而我用来启用本机库的成功工作过程如下(它可能对那些为解决此问题而苦恼的人有所帮助:]

  1. 在包资源管理器中选择项目,然后单击鼠标右键;
  2. 构建路径→配置构建路径;
  3. [图书馆]标签;
  4. JRE系统库选项和本机库位置;
  5. 在右侧面板上编辑;
  6. 浏览到图书馆;
  7. 关闭窗口。
java eclipse dll java-native-interface
2个回答
0
投票

要详细说明我在评论中指出的答案,可以在JAR内部署本机库。但是您必须在代码中提供此信息。您将必须以以下方式编写代码

  • 将库从jar提取到某个临时位置(通常复制getResourceAsStream()给您的内容)
  • 并使用完整路径名加载库(使用load()而不是loadLibrary

0
投票

在这里看看:https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo031

这个想法很简单:

  • 您必须将本机代码嵌入JAR中,
  • 一旦代码运行,您必须解压缩库,
  • 您必须将其加载到代码中。

请注意,库通常是从文件系统加载的,因此无法从缓冲区加载它们。这就是为什么您必须创建临时位置的原因。

© www.soinside.com 2019 - 2024. All rights reserved.