如何将jar文件添加到jar文件中?

时间:2011-12-12 22:40:50

标签: java groovy jar

  

可能重复:
  Can you add multiple jars in a jar file and then launch that jar file

我想找到一种方法将jar文件嵌入到可执行的jar文件中,这样程序所需的所有实用程序都包含在jar文件中。

此URL描述了我想要做的事情,但是只能通过编写自定义类加载器来实现:

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

即使这个网址令人沮丧,我也不会放弃。

我要嵌入的特定.jar文件是groovy.jar文件。

具体来说,我希望我的jar文件看起来像这样:

jar -tf MyProg.jar
META-INF/
META-INF/MANIFEST.MF
lib/groovy-all-1.6.9.jar
MyProg.class

我想这样执行:

java -jar MyProg.jar

MyProg.class是一个groovy程序,并且在运行java -jar MyProg.jar的计算机上没有安装groovy

我成功地在MyProg.jar文件中爆炸了groovy.jar文件,但这很麻烦。

有没有人有自定义类加载器可以满足我的需求? 有没有人有其他想法?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,我认为你的情况比你链接的情况简单,因为它解决了其他罐子外面调用者jar的情况,而你想要引用一个jar 里面你的罐子。

我使用Eclipse,它自动包含资源,包括jar。我只需右键单击相关包并设置构建路径。其他IDE可能具有相同的功能。

如果您不使用IDE(?!),JAR file format只不过是一个zip文件。只要确保MANIFEST文件是第一个,您就可以使用任何zip归档文件来创建JAR文件。

答案 1 :(得分:0)

您不能轻易地将不同的jar捆绑在一起,因为清单文件的类路径条目仅引用jar本身之外的jar。

有些工具可以帮助您更改jar并更改其类加载机制。了解为什么你的问题已经结束。