当前位置: 首页 > news >正文

java---jar详解

一、help

C:\Users\lichf1>jar
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:-c  创建新档案-t  列出档案目录-x  从档案中提取指定的 (或所有) 文件-u  更新现有档案-v  在标准输出中生成详细输出-f  指定档案文件名-m  包含指定清单文件中的清单信息-n  创建新档案后执行 Pack200 规范化-e  为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点-0  仅存储; 不使用任何 ZIP 压缩-P  保留文件名中的前导 '/' (绝对路径)".." (父目录) 组件-M  不创建条目的清单文件-i  为指定的 jar 文件生成索引信息-C  更改为指定的目录并包含以下文件
如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序
与 'm', 'f''e' 标记的指定顺序相同。示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中:jar cvf classes.jar Foo.class Bar.class
示例 2: 使用现有的清单文件 'mymanifest' 并将 foo/ 目录中的所有文件归档到 'classes.jar' 中:jar cvfm classes.jar mymanifest -C foo/ .

二、参数详解

1、简单打包

jar -cf jar包名     class-file1  class-file2 ......

2、-C dir 指定class文件路径,并打包该路径下的class文件

jar -cf jar包名  -C  dir  .  
#-C dir  相当于cd到该目录,然后执行打包命令
#将 foo/ 目录中的所有文件归档到 'classes.jar' 中:
jar cvfm classes.jar mymanifest -C foo/ .

3、-t 查看jar包文件列表

4、-v 打印详细信息

5、-m 指定自定义mainfest.mf文件,并将其中内容覆盖到META-INF\MAINFEST.MF文件中

6、-u 更新META-INF\MAINFEST.MF文件

7、-e 指定入口类,即 com.bos.YYZCApplication

8、 jar -i jar包 生成索引

9、-M 不创建META-INF\MAINFEST.MF文件

10、-x 解压

注意

清单文件名(mainfest文件), 档案文件名(jar包文件)和入口点(程序入口类)名称的指定顺序 与 ‘m’, ‘f’ 和 ‘e’ 标记的指定顺序相同

三、具体使用

1、将class文件打包,并指定入口类

D:\project>jar -cvfe com.bos.jar  com.bos.YYZCApplication   .\com\bos\*class    .\com\bos\service\*class
已添加清单
正在添加: com/bos/Student.class(输入 = 279) (输出 = 213)(压缩了 23%)
正在添加: com/bos/YYZCApplication.class(输入 = 557) (输出 = 375)(压缩了 32%)
正在添加: com/bos/service/Working.class(输入 = 288) (输出 = 222)(压缩了 22%)
## 执行
D:\project>java -jar com.bos.jar
hello worldD:\project>

2、将class文件打包,并指定自定义mainfest.mf文件,mainfest.mf在当前路径下

cat mainfes.mf
Manifest-Version: 1.0
Created-By: 1.8.0_144 (Oracle Corporation)
Main-Class: com.bos.YYZCApplication
D:\project>jar -cvfm com.bos.jar  mainfes.mf   .\com\bos\*class    .\com\bos\service\*class
已添加清单
正在添加: com/bos/Student.class(输入 = 279) (输出 = 213)(压缩了 23%)
正在添加: com/bos/YYZCApplication.class(输入 = 557) (输出 = 375)(压缩了 32%)
正在添加: com/bos/service/Working.class(输入 = 288) (输出 = 222)(压缩了 22%)D:\project>java -jar com.bos.jar
hello worldD:\project>

3、将test目录下的所有文件打包,并指定mainfest.mf文件,mainfest.mf在当前路径下(不是在test路径下)(注意最后的dot)

D:\project>jar -cvfm com.jar mainfes.mf   -C test .
已添加清单
正在添加: com/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/bos/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/bos/service/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/bos/service/Working.class(输入 = 288) (输出 = 222)(压缩了 22%)
正在添加: com/bos/service/Working.java(输入 = 163) (输出 = 102)(压缩了 37%)
正在添加: com/bos/Student.class(输入 = 279) (输出 = 213)(压缩了 23%)
正在添加: com/bos/Student.java(输入 = 141) (输出 = 90)(压缩了 36%)
正在添加: com/bos/YYZCApplication.class(输入 = 557) (输出 = 375)(压缩了 32%)
正在添加: com/bos/YYZCApplication.java(输入 = 308) (输出 = 186)(压缩了 39%)D:\project>java -jar com.jar
hello worldD:\project>
http://www.lryc.cn/news/166718.html

相关文章:

  • uni-app 新增 微信小程序之新版隐私协议
  • nbcio-boot移植到若依ruoyi-nbcio平台里一formdesigner部分(四)
  • 公交查询系统
  • opencv 轮廓顶点重新排序----四边形
  • 【项目实战】【已开源】USB2.0 HUB 集线器的制作教程(详细步骤以及电路图解释)
  • 分布式运用之rsync远程同步
  • 誉天在线项目~ElementPlus实现浏览页面注意点
  • 神经网络-pytorch版本
  • uniapp vue 页面传参问题encodeURIComponent
  • 【GDAL】tif影像拼接和目标截取
  • ARM核心时间线
  • 【Redis】深入探索 Redis 的数据类型 —— 列表 List
  • 高精度乘除法(超详细)
  • List 获取前N条数据
  • Spring入门控制反转(或依赖注入)AOP的关键概念 多配置文件与web集成
  • 排序算法-希尔排序
  • ClientDataSet运行中出现“ClientDataSet:dataset not in edit or insert mode”(一)
  • 华为GaussDB数据库
  • Flink、Spark、Hive集成Hudi
  • 百度编辑器 Ueditor 视频上传时 目录创建失败 解决办法
  • Go 字符串处理
  • 家政服务接单小程序开发源码 家政保洁上门服务小程序源码 开源完整版
  • SuperMap iClient3D 11i (2023) SP1 for Cesium之移动实体对象
  • 【深度学习 AIGC】stablediffusion-infinity 在无界限画布中输出绘画 Outpainting
  • Flutter插件之阿里百川
  • ✔ ★ 算法基础笔记(Acwing)(三)—— 搜索与图论(17道题)【java版本】
  • 初试占比70%,计算机招生近200人,安徽理工大学考情分析
  • LeetCode题解:1720. 解码异或后的数组,异或,JavaScript,详细注释
  • 【C刷题】day2
  • Apollo源码安装的问题及解决方法