我正在eclipse中开发一个Android项目。我正在创建library project
使用的main project
。 Main project
使用external jar
文件。我想将此external jar
文件添加到library project
,然后将library project
的jar文件添加到main project
。我在库项目中添加了jar文件,但是当我编译库项目时,它的大小没有改变,外部jar文件没有嵌入库项目中。
我的意思是我想将库和外部jar组合到一个我的项目可以链接到的库中。
我该怎么做?
谢谢,
答案 0 :(得分:3)
所以你想把库和外部jar组合成一个你的项目可以链接到的库?这是不可能的。您不能只组合/链接两个二进制文件(JAR)并期望它们作为一个单独的库工作。您的库是动态链接的,而不是静态的,每个库都加载在不同的地址空间中。如果你想让它们成为一体,你需要拥有两个库(你现有的库和外部jar)的源代码和编译它们(即静态链接)。
<强>更新强>
感谢Sergiu的洞察力,这是真的。上面的答案是基于一个区域,即JRE在运行时在某个内存位置加载的二进制文件,并且它是二进制格式化的,函数/变量加载在由环境计算的位置 - 一般CS理论。
根据您的评论,我搜索了如何组合两个JAR,您的方法似乎正确。
这是另一个答案:Combine two JARs
查看第二个答案,它还阐明了Manifest.mf文件。
答案 1 :(得分:0)
您可以使用两种方式将外部jar添加到项目中:
Properties
。Java Build Path
标签中选择Library
标签,然后点击Add External JARs..
按钮,将外部jar文件添加到项目中。OK
。另一种方法是将jar
文件复制到项目libs
文件夹中,然后右键单击jar
文件并选择Build Path>Add to Build Path.
尝试这种方式,我希望它可以帮到你。
答案 2 :(得分:0)
这是一个常见问题,它被定义为库的范围。通常范围是“提供”,这意味着该库应该包含在 Jar 文件的类路径中(对于javac)和不是,但在这种情况下,您应该将库范围更改为“编译”,这样它也会进入Jar文件。
我不使用Eclipse,因此我不知道要查看哪个菜单,但它是常见的属性,(在Apache Maven,IntelliJ,...)所以我很确定你可以找到它的位置Eclipse有一点点搜索
长话短说,将您的图书馆范围更改为“编译”