多个Jar的合并操作
同事要写Android平台下的打包工具,遇到需要将多个jar合并成一个jar的问题。这里列一下操作步骤:
1、将所有jar文件复制至某临时目录中,通过jar命令解压得到所有的.class文件
> jar -xvf xx.jar
xx.jar必须为具体的jar,不能为*.jar,会报FileNotFoundException
2、删除临时目录下所有的jar文件
> del /F *.jar
3、合并所有.class文件至jar,需要切换至该临时目录,不然生成的jar会包含临时目录
> jar -cvfM game.jar .
jar命令不支持将资源“解压”到指定的目录,所以使用上述的方法。不过在生成最终的jar时,遇到一个很坑人的地方,使用jd-gui.exe查看jar里的目录结构,发现它会带上“盘符:临时目录”这一层,无论我怎么调整命令,将jar拖进去看的时候,它都带有该目录。最后让其它用相同的命令在他的机器测试发现是没有问题的,最后我重启jd-gui.exe再来查看之前生成的jar发现就正常了。
更多关于jar相关的命令可以参数这里: