有没有一个快速的方法来从jar / war中删除文件,而不必提取jar并重新创build它?
所以我需要从jar / war文件中删除一个文件。 我希望有像“jar -d myjar.jar file_I_donot_need.txt”
但是现在我可以看到从我的Linux命令行(不使用WinRAR / Winzip或者linux等效)做到这一点的唯一方法是
- 做“jar -xvf”并解压
完整的jar文件 - 删除我不需要的文件
- 使用“jar -cvf”来压缩jar文件
请告诉我有一个更短的方法?
zip -d file.jar unwanted_file.txt
jar只是一个zip文件毕竟。 肯定比解压缩/重新压缩快得多。
在Java中,您可以复制除了要删除的jar外的所有条目。 即你必须做一个副本,但不需要创build单个文件。
你可以这样做
- 创造一个新的jar子。
- 迭代你的jar子
- 将条目从一个jar复制到另一个,跳过任何你想要的文件。
- closures并取代原瓶,如果你想。
如果您想要删除文件以便签名签名的jar文件,那么您可能只需要将.RSA文件设置为零。 这可以用jar u
来完成。 请参阅https://stackoverflow.com/a/24678645/653539 。 (为我工作,虽然我承认这是黑客。)