如何组合两个Jar文件
是否可以组合两个jar文件,以便在applet标签中我可以简单地执行类似的操作
archive="jarjar.jar/jar1.jar"... ...archive="jarjar.jar/jar2.jar"... instead of archive="jar1.jar"... ...archive="jar2.jar"...
我只需要一个jar文件,所以把两个jar文件放在一个文件夹中对我没用。
您需要提取两个JAR文件并重新生成一个。
jar -xvf jar1.jar tmp jar -xvf jar2.jar tmp cd tmp jar -cvf jar3.jar .
请参考以下答案 。
当然,只需提取两个jar文件并重新创建一个新文件
$ mkdir tmp $ (cd tmp; unzip -uo ../jar1.jar) $ (cd tmp; unzip -uo ../jar2.jar) $ jar -cvf combined.jar -C tmp .
使用tmp
的东西确保将两个现有的jar解压缩到一个干净的目录中,然后从中创建新的jar。
请注意,您可能还需要合并其中包含的任何manifest.mf
文件,如果还有任何在该文件命令中也包含’-m’选项。
将zipgroupfileset与Ant Zip任务一起使用
可能会帮助你。
如果您使用的是gradle,只需将以下内容添加到build.gradle即可。 无需插件。 如果您需要特殊选项,那么请使用Fatjar插件,正如initialZero建议的那样。
task superSimpleJar(type: Jar) { baseName = project.name + '-all' from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar }
对于Android项目,将其添加到app / build.gradle并运行“gradlew superSimpleJar”。 在build / libs / app-all.jar中找到jar
task superSimpleJar(type: Jar) { baseName = project.name + '-all' from { configurations.compile.findAll { it.getName() != 'android.jar' }.collect { it.isDirectory() ? it : zipTree(it) } } }
还有eclipse fatjar插件。
只需解压缩两个jar文件,然后将结果压缩成一个zip文件,然后再将其重命名为jar。
但正如adarshr所说:更好地使用jar命令。
将此代码保存在build.xml
文件中,并将其保存在同一个文件夹中,以保存要组合的所有jar文件。 打开cmd
,给出文件夹路径并运行命令: ant zip
。
它将生成out.jar
,它是所有jar子的组合。
提取两个jar子并创建一个新的工作。 (使用上面显示的jar命令)。 关于清单文件的一个警告是,您要提取要在最后保留其清单文件的jar。