可能重复:
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文件,但这很麻烦。
有没有人有自定义类加载器可以满足我的需求? 有没有人有其他想法?
答案 0 :(得分:1)
如果我理解正确,我认为你的情况比你链接的情况简单,因为它解决了其他罐子外面调用者jar的情况,而你想要引用一个jar 里面你的罐子。
我使用Eclipse,它自动包含资源,包括jar。我只需右键单击相关包并设置构建路径。其他IDE可能具有相同的功能。
如果您不使用IDE(?!),JAR file format只不过是一个zip文件。只要确保MANIFEST文件是第一个,您就可以使用任何zip归档文件来创建JAR文件。
答案 1 :(得分:0)
您不能轻易地将不同的jar捆绑在一起,因为清单文件的类路径条目仅引用jar本身之外的jar。
有些工具可以帮助您更改jar并更改其类加载机制。了解为什么你的问题已经结束。