是否可以在eclipse中将外部jar文件嵌入(组合)到我的库项目中?

时间:2013-01-06 09:11:11

标签: android eclipse jar java

我正在eclipse中开发一个Android项目。我正在创建library project使用的main projectMain project使用external jar文件。我想将此external jar文件添加到library project,然后将library project的jar文件添加到main project。我在库项目中添加了jar文件,但是当我编译库项目时,它的大小没有改变,外部jar文件没有嵌入库项目中。

我的意思是我想将库和外部jar组合到一个我的项目可以链接到的库中。

我该怎么做?

谢谢,

3 个答案:

答案 0 :(得分:3)

所以你想把库和外部jar组合成一个你的项目可以链接到的库?这是不可能的。您不能只组合/链接两个二进制文件(JAR)并期望它们作为一个单独的库工作。您的库是动态链接的,而不是静态的,每个库都加载在不同的地址空间中。如果你想让它们成为一体,你需要拥有两个库(你现有的库和外部jar)的源代码和编译它们(即静态链接)。

<强>更新

感谢Sergiu的洞察力,这是真的。上面的答案是基于一个区域,即JRE在运行时在某个内存位置加载的二进制文件,并且它是二进制格式化的,函数/变量加载在由环境计算的位置 - 一般CS理论。

根据您的评论,我搜索了如何组合两个JAR,您的方法似乎正确。

这是另一个答案:Combine two JARs

查看第二个答案,它还阐明了Manifest.mf文件。

答案 1 :(得分:0)

您可以使用两种方式将外部jar添加到项目中:

  1. 右键点击项目,转到Properties
  2. Java Build Path标签中选择Library标签,然后点击Add External JARs..按钮,将外部jar文件添加到项目中。
  3. 点击OK
  4. 另一种方法是将jar文件复制到项目libs文件夹中,然后右键单击jar文件并选择Build Path>Add to Build Path.

    尝试这种方式,我希望它可以帮到你。

答案 2 :(得分:0)

这是一个常见问题,它被定义为库的范围。通常范围是“提供”,这意味着该库应该包含在 Jar 文件的类路径中(对于javac)和不是,但在这种情况下,您应该将库范围更改为“编译”,这样它也会进入Jar文件。

我不使用Eclipse,因此我不知道要查看哪个菜单,但它是常见的属性,(在Apache Maven,IntelliJ,...)所以我很确定你可以找到它的位置Eclipse有一点点搜索

长话短说,将您的图书馆范围更改为“编译”