关于 jar包和 打jar包
1.什么是 jar包?
Java Archive File(Java档案[归档]文件) jar文件是基于zip文件格式的压缩包,用于将多个class文件聚合一个文件 jar文件的本质就是一个 zip文件 jar文件 包含了 class文件和一个可选的META-INF目录
2.为什么 要打jar包?
jar文件 不仅仅是将 class文件或者资源文件 的简单打包,
常被用来做 应用程序(部署)和扩展模块(依赖包)
3.jar包 的内部结构?
//1.class文件
path1/path2/*.class
//2.META-INF目录 用于存储包和扩展配置数据,包括安全性、版本控制、扩展和服务
META-INF(可选)
META-INF/maven/相关
META-INF/MANIFEST.MF
//3.其他配置文件(按需配置)
dbInfo.properties
hdfs-site.xml
hive-site.xml
log4j.properties
4.关于 MANIFEST.MF
1. 用途 jar的元数据配置文件,里面的配置信息可被被 jvm识别 2. 格式要求 key: value 注意: 冒号后的空格必须有,不然格式有错误(java.io.IOException: invalid header field) 不能有空白行 3. 常用配置项 Main-Class: One Class-Path: /root/up
5.怎样用 jar 进行打jar 包?
5.1 关于 jar命令
功能: 制作jar包、解压jar、查看jar内容 语法: jar -options [jar-file] [manifest-file] [-C dir] files ... 参数: -c 创建新档案(打jar) -t 列出档案目录(查询jar) -x 从档案中提取指定的(或所有)文件 (解压jar包) -u 更新现有档案 -v 在标准输出中生成详细输出 -f 指定档案文件名 -m 包含指定清单文件中的清单信息 -M 不创建条目的清单文件 -C 更改为指定的目录并包含以下文件
5.2 打jar包
示例1: 将当前目录下的 .class 文件进行打包
jar -cvf gc.jar *.class -c 创建新档案 -v 在标准输出中生成详细输出 -f 指定档案文件名
示例2: 将bin目录下的 所有文件进行打包
jar -cvf gc1.jar -C bin .
示例3: 将 自定义的 MANIFEST.MF 注入到 jar包的META-INF/MANIFEST.MF 中 (创建一个 可执行的 jar包)
1. 创建 mainfile Main-Class: One Class-Path: /root/up 2. 执行命令 jar -cvfm gc.jar mainfile *.class 3. 测试 java -jar gc.jar #可直接执行 jar
5.3 查看 jar 指定内容
jar -tf antlr-4.0-complete.jar -f 指定档案文件名 -t 列出档案目录
5.4 解压jar 包
jar -xvf xxx.jar -x 从档案中提取指定的(或所有)文件 -v 在标准输出中生成详细输出 -f 指定档案文件名
6.怎样是用 idea打 jar包?
https://www.cnblogs.com/bajiaotai/p/15378736.html
7.怎样是用 maven打 jar包?
参考:
https://blog.csdn.net/cnds123/article/details/115480190 Java 之使用 jar 命令打包 https://blog.csdn.net/Alecor/article/details/110622771?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-110622771-blog-118292710.t0_edu_mix&spm=1001.2101.3001.4242.4&utm_relevant_index=8 Jar包分析-META-INF文件夹
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)