gpt4 book ai didi

java - 如何使用 jar 分发 native 库?

转载 作者:行者123 更新时间:2023-11-29 05:46:26 25 4
gpt4 key购买 nike

enter image description here

这是我最终部署软件时想要创建的目录结构。它是一个具有网络摄像头功能的 Java 聊天客户端,对于网络摄像头,我使用的是 LTI-CIVIL。

我被告知我不能直接使用 JAR 中的 DLL,我必须将它们提取到某个地方。一切都很酷。然而,我无法理解的是我怎样才能让它发挥作用

LTI 在其网站上提供的 zip 文件中包含大量文件。如果您使用的是 Eclipse,则需要为 native 库设置适当文件夹的路径。但是,这将我限制在 Eclipse 中并阻止我将 JAR 分发给我的 friend 。显然,我现在必须指向那个文件夹,并且可能加载文件,programatiaclly

我是初学者所以如果有人可以download LTI-CIVIL ,看看目录结构,让我知道如何实现我想要做的事情,我将不胜感激。AFAIK,对于我的 32 位 Windows,我需要指向 native/win32-x86 文件夹。

我正在尝试做的是在内存中加载适当的文件,以便我可以提供网络摄像头功能。我想避免安装程序,只是提供一个具有上述目录结构的 zip 文件,以便人们可以从文件夹中提取、运行 jar 文件并开始聊天。

澄清:我正在尝试发送一个库带有 jar 文件,而不是 jar 中。我知道从 jar 中提取和使用 dll 很困难

最佳答案

我假设加载 native 库 (System.load) 的不是您自己的代码,它们是由第三方 jar (lti-civil) 加载的。

在这种情况下,您必须在 lti-civil 尝试加载 native 库之前适本地设置环境变量 LD_LIBRARY_PATH

或者:

由于事先不知道确切的路径,在这两种情况下,您还必须找到本地库所在的正确路径。

如果库的路径是相对于 jar/launcher 的路径,则找到可执行文件的当前路径:

然后,您可以假设库位于相对于此 (../native) 的路径中,只需计算路径(并可能将其扩展为绝对路径)。

计算出绝对路径后,按照答案第一部分中的描述设置环境/系统属性。

关于java - 如何使用 jar 分发 native 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15722142/

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