如何在jar文件中打包库?

时间:2013-03-28 15:18:20

标签: java eclipse dll native

我是新手与任何本地图书馆合作,这个问题可能看起来很愚蠢,所以请耐心等待。

我下载了LTI-CIVIL来捕获网络摄像头的视频输入。它要求我在Eclipse中创建一个库并指出本机文件的位置。

假设本机dll位于E:\files\lti-civil\src\native\ms(x86),我想将这些与jar文件一起添加,并创建一个可以发送给我的朋友的独立应用程序。

目前,我可以从Eclipse本身运行程序,因为它指向E:\blah_blah,但在其他人的计算机上可能不是这样的

现在,我如何打包这些以便我可以独立应用?在Eclipse的src中创建一个文件夹并在那里添加文件夹或什么?

2 个答案:

答案 0 :(得分:4)

看看这个question/answer。因为它涵盖了你想要做的事情。

只是为了覆盖那些答案所要做的就是在.jar中打包.dll。在项目中包含.jar。在运行之前,将它们解压缩到临时文件夹并告诉程序使用该位置。

要从Eclipse创建自包含JAR,请执行以下步骤。

Step 1

右键单击您的项目,然后选择导出

Step 2

在Java下选择Runnable JAR File

Step 3

选择将所需的库提取到生成的JAR中

这将允许您发送一个独立的应用程序发送给您喜欢的人。

答案 1 :(得分:2)

DLL无法打包在jar文件中,因为Java无法从Windows上的存档文件加载DLL。一种可能性是分发包含Java程序(作为.jar)和DLL的内容,并在安装时解压缩。

热门选择包括:用户必须手动提取的ZIP文件,自解压ZIP文件或由InnoSetup生成的“设置”程序。

另一种可能性是将DLL打包在.jar文件中,让应用程序在启动时将其解压缩到例如临时目录中。

DLL在文件系统上后,您可以使用System.loadSystem.loadLibrary加载它。