- 显示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
- 提取一个文件
$ jar -xvf t.jar com/company/file2.txt
inflated: com/company/file2.txt
$ tree ./
./
├── com
│ └── company
│ └── file2.txt
└── t.jar
2 directories, 2 files
- 增加一个文件
$ 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
- 替换一个文件
$ 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
可见替换和增加的命令是一样,有则替换否则增加。
- 删除一个文件
这个好像没有找到对应的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 ...
,是不是很土。
网友评论