因此,我需要从jar / war文件中删除一个文件。我希望有类似“jar -d myjar.jar file_I_donot_need.txt”的内容但是现在我所能看到的从Linux命令行(不使用WinRAR/Winzip或Linux等效命令)执行此操作的唯一方法是
完整Jar文件
请告诉我有更近的路吗?
qhhrdooz1#
zip -d file.jar unwanted_file.txt
jar毕竟只是一个zip文件。绝对比解压缩/重新压缩快得多。
exdqitrt2#
如果你想删除文件来取消签名jar,你可以把.RSA文件的大小设置为零,这可以通过jar u来实现,参见https://stackoverflow.com/a/24678645/653539(对我来说很有效,尽管我承认这很难)。
jar u
o7jaxewo3#
在Java中,你可以复制jar中除了你想删除的条目之外的所有条目,也就是说,你必须做一个副本,但不需要创建单独的文件。您可以通过
u5i3ibmn4#
如果您希望以编程方式执行此操作,可以使用Zip文件系统将zip/jar文件视为文件系统。这将允许您编辑、删除和向jar文件添加文件。参见Appending files to a zip file with Java
ljo96ir55#
对我来说,最好的答案是lapo在这篇文章中对another answer的评论。用户lapo写道:我经常安装p7zip而不是zip,在这种情况下,指定文件格式很重要:7z d -tzip file.jar dir/unwanted_file.txt用户lapo的评论是对建议直接使用zip -d的回答的回应,因为.jar文件类似于.zip存档,但格式不完全相同。压缩错误:压缩文件结构无效但是,我能够通过brew install p7zip安装p7zip,然后我能够使用7z d -tzip file.jar unwanted_file.txt删除。
p7zip
7z d -tzip file.jar dir/unwanted_file.txt
zip -d
brew install p7zip
7z d -tzip file.jar unwanted_file.txt
5条答案
按热度按时间qhhrdooz1#
jar毕竟只是一个zip文件。绝对比解压缩/重新压缩快得多。
exdqitrt2#
如果你想删除文件来取消签名jar,你可以把.RSA文件的大小设置为零,这可以通过
jar u
来实现,参见https://stackoverflow.com/a/24678645/653539(对我来说很有效,尽管我承认这很难)。o7jaxewo3#
在Java中,你可以复制jar中除了你想删除的条目之外的所有条目,也就是说,你必须做一个副本,但不需要创建单独的文件。
您可以通过
u5i3ibmn4#
如果您希望以编程方式执行此操作,可以使用Zip文件系统将zip/jar文件视为文件系统。这将允许您编辑、删除和向jar文件添加文件。
参见Appending files to a zip file with Java
ljo96ir55#
对我来说,最好的答案是lapo在这篇文章中对another answer的评论。
用户lapo写道:
我经常安装
p7zip
而不是zip,在这种情况下,指定文件格式很重要:7z d -tzip file.jar dir/unwanted_file.txt
用户lapo的评论是对建议直接使用
zip -d
的回答的回应,因为.jar文件类似于.zip存档,但格式不完全相同。压缩错误:压缩文件结构无效
但是,我能够通过
brew install p7zip
安装p7zip
,然后我能够使用7z d -tzip file.jar unwanted_file.txt
删除。