美文网首页
Java如何修改jar文件的内容

Java如何修改jar文件的内容

作者: CodingCode | 来源:发表于2023-02-16 07:07 被阅读0次
  1. 显示jar的内容
$ jar -tvf t.jar
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
     3 Thu Feb 16 14:20:00 PST 2023 com/company/file2.txt
  1. 提取一个文件
$ jar -xvf t.jar com/company/file2.txt 
 inflated: com/company/file2.txt
$ tree ./
./
├── com
│   └── company
│       └── file2.txt
└── t.jar

2 directories, 2 files
  1. 增加一个文件
$ jar -uvf t.jar com/company/file4.txt 
adding: com/company/file4.txt(in = 5) (out= 7)(deflated -40%)
$ jar -tvf t.jar 
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
     3 Thu Feb 16 14:20:00 PST 2023 com/company/file2.txt
     5 Thu Feb 16 14:59:00 PST 2023 com/company/file4.txt
  1. 替换一个文件
$ jar -tvf t.jar 
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
     3 Thu Feb 16 14:20:00 PST 2023 com/company/file2.txt
     5 Thu Feb 16 14:59:00 PST 2023 com/company/file4.txt
$ ls -l com/company/file2.txt 
-rw-r--r--+ 1 <uid> <gid> 26 Feb 16 15:00 com/company/file2.txt
$ jar -uvf t.jar com/company/file2.txt 
adding: com/company/file2.txt(in = 26) (out= 6)(deflated 76%)
$ jar -tvf t.jar 
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
    26 Thu Feb 16 15:00:32 PST 2023 com/company/file2.txt
     5 Thu Feb 16 14:59:00 PST 2023 com/company/file4.txt

可见替换和增加的命令是一样,有则替换否则增加。

  1. 删除一个文件

这个好像没有找到对应的jar命令,但是可以用zip命令,因为理论上jar文件和zip文件是一样的格式,也就是说通常作用在zip文件上的命令都可以用来作用在jar上。

$ jar -tvf t.jar 
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
    26 Thu Feb 16 15:00:32 PST 2023 com/company/file2.txt
     5 Thu Feb 16 14:59:00 PST 2023 com/company/file4.txt
$ zip -d t.jar com/company/file2.txt
deleting: com/company/file2.txt
$ jar -tvf t.jar 
     0 Thu Feb 16 14:20:20 PST 2023 META-INF/
    69 Thu Feb 16 14:20:20 PST 2023 META-INF/MANIFEST.MF
     0 Thu Feb 16 14:19:40 PST 2023 com/
     0 Thu Feb 16 14:20:06 PST 2023 com/company/
     2 Thu Feb 16 14:19:54 PST 2023 com/company/file1.txt
     4 Thu Feb 16 14:20:06 PST 2023 com/company/file3.txt
     5 Thu Feb 16 14:59:00 PST 2023 com/company/file4.txt

以前当要修改一个jar文件的时候都是先解开jar -xvf ...,然后重新打包jar -cvf ...,是不是很土。

相关文章

网友评论

      本文标题:Java如何修改jar文件的内容

      本文链接:https://www.haomeiwen.com/subject/fsxpkdtx.html