java有没有一种从Jar/war中删除文件的快速方法,而不必提取Jar并重新创建它?
所以我需要从jar/war文件中删除一个文件。 我希望有类似“jar-d myjar.jar file\u I\u donot\u need.txt”的东西
但现在,我能看到的从Linux命令行执行此操作的唯一方法(不使用WinRAR/Winzip或Linux等效工具)是
- 执行“jar-xvf”并提取
完整的Jar文件 - 删除我不需要的文件
- 使用“jar-cvf”重新jar jar文件
请告诉我还有较短的路吗
# 1 楼答案
在Java中,您可以复制jar的所有条目,但要删除的条目除外。i、 e.你必须复制一份,但不需要创建单独的文件
你可以通过
# 2 楼答案
如果您希望通过编程实现这一点,可以使用Zip文件系统将Zip/jar文件视为一个文件系统。这将允许您编辑、删除jar文件,并将文件添加到jar文件中
见Appending files to a zip file with Java
# 3 楼答案
jar毕竟只是一个zip文件。绝对比解压/再压缩快得多
# 4 楼答案
如果您想要删除文件以取消签名签名jar,您可能只需要执行以下操作。RSA文件大小为零。这可以通过
jar u
实现。见https://stackoverflow.com/a/24678645/653539。(对我有用,但我承认这是黑客行为。)