3. Jar文件提取与查看
约 567 字大约 2 分钟
最近遇到一个奇怪的问题,一个jar包无法解压,直接使用jar xvf xxx.jar
没有任何响应
因为实际想看的只是jar包中的某个class文件,基于此可以通过 jar tf
查看文件列表,在通过 jar xf xxx.jar xxxfile
的方式来解压指定文件来实现目的
接下来记录一下jar包的几个操作case
1. jar包生成
直接通过jar命令可以非常简单的将class文件打包到一个jar中
一个简单的java类
public class Hello {
public static void main(String[] args) {
System.out.println("hello world");
}
}
打包jar命令
javac Hello.java
jar xvf Hello.jar Hello.class
直接使用上面这种打包,会有一个问题,当jar包中,有多个class文件存在main方法时,会提示没有主清单属性
$ java -jar Hello.jar
没有主清单属性
主要原因就是在清单文件MANIFEST.MF
中,没有指定主类
指定主类
Manifest-Version: 1.0
Created-By: 1.8.0_171 (Oracle Corporation)
Main-Class: Hello
打包命令如下(下面新增了一个Wel.java,源码就不说了)
jar cvfm B.jar MAINFEST.MF -c Hello.class Wel.class
2. jar文件列表查看
查看jar中有哪些文件,除了直接使用vim之外,还可考虑通过下面的命令
# tf 来查看jar包中的文件列表
$ jar tf B.jar
META-INF/
META-INF/MANIFEST.MF
Hello.class
Wel.class
使用tf进行查看,就可以结合 grep 来过滤指定的文件
3. 指定文件提取
对于jar文件整个解压,可以直接使用
jar xvf B.jar
当我们只希望提取jar包中的某个文件时,可以在后面添加需要提取的文件路径
# 指定文件提取
jar xf B.jar Hello.class
一灰灰的联系方式
尽信书则不如无书,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 个人站点:https://blog.hhui.top
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
- 微信公众号:一灰灰blog
Loading...