jar包解压和压缩
JAR ⽂件就是Java Archive ( Java 档案⽂件),它是 Java 的⼀种⽂档格式。 JAR ⽂件⾮常类似 ZIP ⽂件
准确的说,它就是 ZIP ⽂件,所以叫它⽂件包。JAR ⽂件与 ZIP ⽂件唯⼀的区别就是在 JAR ⽂件的内容中,多出了⼀个META-INF/MANIFEST.MF ⽂件,这个⽂件是在⽣成 JAR ⽂件的时
候⾃动创建的(也可以⾃⾏创建)
1. jar包还原
Soring boot 项⽬jar包解压之后修改⽂件之后在不依靠开发⼯具的情况下重新压缩jar包打包命令如下:
jar -cvf0M xxx.jar BOOT-INF/ META-INF/ org/
具体操作
[admin@custmer-development-d apps_other]$ ll
total 20736
-rw-rw-r--. 1 admin admin 21224413 Nov 18 10:36 alert-0.0.1-SNAPSHOT.jar
drwxr-xr-x. 4 admin admin      67 Nov 18 10:35 BOOT-INF
drwxr-xr-x. 3 admin admin      36 Nov 18 10:35 META-INF
drwxr-xr-x. 3 admin admin      28 Feb  1  1980 org
[admin@custmer-development-d apps_other]$ jar -cvf0M alert.jar BOOT-INF/ META-INF/ org/
[admin@custmer-development-d apps_other]$ ll
total 60256
-rw-rw-r--. 1 admin admin 21224413 Nov 18 10:36 alert-0.0.1-SNAPSHOT.jar
-rw-r--r--. 1 admin admin 19095463 Nov 20 18:27 alert.jar
drwxr-xr-x. 4 admin admin      67 Nov 18 10:35 BOOT-INF
drwxr-xr-x. 3 admin admin      36 Nov 18 10:35 META-INF
drwxr-xr-x. 3 admin admin      28 Feb  1  1980 org
[admin@custmer-development-d apps_other]$ java -jar alert.jar
.  ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/  ___)| |_)| | | | | || (_| |  ) ) ) )spring怎么读取jar文件
'  |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::                (v2.4.0)
2020-11-20 18:30:27 [main] INFO  cn.AlertApplication -Starting AlertApplication v0.0.1-SNAPSHOT using Java 1.8.0_60 d with PID 10833 (/home/admin/apps_other/alert01.jar started by admin in /home/adm 2020-11-20 18:30:27 [main] INFO
  cn.AlertApplication -The following profiles are active: dev
2020-11-20 18:30:29 [main] INFO  org.springframework.at.TomcatWebServer -Tomcat initialized with port(s): 8082 (http)
2020-11-20 18:30:29 [main] INFO  http11.Http11NioProtocol -Initializing ProtocolHandler ["http-nio-8082"]
2020-11-20 18:30:29 [main] INFO  org.StandardService -Starting service [Tomcat]
2. jar常⽤命令
压缩
jar -cvf xxx.jar
解压
jar -xvf xxx.jar
更新
jar -uvf xxx.jar BOOT-INF/l
列出jar包内容
jar -tvf xxx.jar
运⾏jar
java -jar xxx.jar
java -jar xxx.jar &
nohup java -jar &
&表⽰在当窗⼝关闭时,程序才会中⽌运⾏。&代表让该命令在后台
命令 “nohup java -jar XXX.jar &” 表⽰不挂断运⾏命令,当账户退出或终端关闭时,程序仍然运⾏。注意,该作业的所有输出被重定向到nohup.out的⽂件中。
nohup java -jar XXX.jar >temp.log &
表⽰不挂断运⾏命令,当账户退出或终端关闭时,程序仍然运⾏,并且该作业的所有输出被重定向到temp.log的⽂件中。“ > temp.log ” 该命令就是指定⽇志输出的⽂件。
">>"表⽰将输出以追加的⽅式重定向到Log.log中。
nohup java -jar XXX.jar >& &
nohup java -jar XXX.jar > /dev/null 2>&1 &
标准输⼊⽂件(stdin):stdin的⽂件描述符为0,Unix程序默认从stdin读取数据。
标准输出⽂件(stdout):stdout 的⽂件描述符为1,Unix程序默认向stdout输出数据。
标准错误⽂件(stderr):stderr的⽂件描述符为2,Unix程序会向stderr流中写⼊错误信息。
屏蔽输出,起到禁⽌输出作⽤:/dev/null 是⼀个特殊的⽂件,写⼊到它的内容都会被丢弃;如果尝试从该⽂件读取内容,那么什么也读不到。但是/dev/null ⽂件⾮常有⽤,将命
令的输出重定向到它,会起到"禁⽌输出"的效果。
“> Log.log 2>&1” :表⽰将 stdout 和 stderr 合并后重定向到 Log.log
可通过jobs命令查看后台运⾏任务
3.jar命令参数
⽤法:jar {ctxui} [vfmn0PMe] [jar⽂件] [清单⽂件] [⼊⼝点] [-C⽬录]⽂件...
选项:
-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 /
5. java -jar 启动参数详情
java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar xxx.jar > xxx.file 2>&1 &
1、-Xms :表⽰java虚拟机堆区内存初始内存分配的⼤⼩,通常为操作系统可⽤内存的1/64⼤⼩即可,但仍需按照实际情况进⾏分配。有可能真的按照这样的⼀个规则分配时,设计出的软件还没有能够运⾏得起来就挂了。
2、-Xmx:表⽰java虚拟机堆区内存可被分配的最⼤上限,通常为操作系统可⽤内存的1/4⼤⼩。但是开
发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其⽬的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的⼤⼩⽽浪费资源。
3、-XX:newSize:表⽰新⽣代初始内存的⼤⼩,应该⼩于 -Xms的值;
4、-XX:MaxnewSize:表⽰新⽣代可被分配的内存的最⼤上限;当然这个值应该⼩于 -Xmx的值;
5、-Xmn:⾄于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新⽣代的内存⼤⼩,那么-XX:newSize = -
XX:MaxnewSize = -Xmn,虽然会很⽅便,但需要注意的是这个参数是在JDK1.4版本以后才使⽤的。
6、-XX:PermSize:表⽰⾮堆区初始内存分配⼤⼩,其缩写为permanent size(持久化内存)
7、-XX:MaxPermSize:表⽰对⾮堆区分配的内存的最⼤上限。
localhost:~ hjma$ java -X
-Xmixed          混合模式执⾏(默认)
-Xint            仅解释模式执⾏
-Xbootclasspath:<⽤ : 分隔的⽬录和 zip/jar ⽂件>
设置引导类和资源的搜索路径
-Xbootclasspath/a:<⽤ : 分隔的⽬录和 zip/jar ⽂件>
附加在引导类路径末尾
-Xbootclasspath/p:<⽤ : 分隔的⽬录和 zip/jar ⽂件>
置于引导类路径之前
-Xdiag            显⽰附加诊断消息
-Xnoclassgc        禁⽤类垃圾收集
-Xincgc          启⽤增量垃圾收集
-Xloggc:<file>    将 GC 状态记录在⽂件中(带时间戳)
-Xbatch          禁⽤后台编译
-
Xms<size>        设置初始 Java 堆⼤⼩
-Xmx<size>        设置最⼤ Java 堆⼤⼩
-Xss<size>        设置 Java 线程堆栈⼤⼩
-Xprof            输出 cpu 分析数据
-Xfuture          启⽤最严格的检查,预计会成为将来的默认值
-Xrs              减少 Java/VM 对操作系统信号的使⽤(请参阅⽂档)
-Xcheck:jni      对 JNI 函数执⾏其他检查
-Xshare:off      不尝试使⽤共享类数据
-Xshare:auto      在可能的情况下使⽤共享类数据(默认)
-Xshare:on        要求使⽤共享类数据,否则将失败。
-XshowSettings    显⽰所有设置并继续
-
XshowSettings:system
(仅限 Linux)显⽰系统或容器
配置并继续
-XshowSettings:all
显⽰所有设置并继续
-XshowSettings:vm 显⽰所有与 vm 相关的设置并继续
-XshowSettings:properties
显⽰所有属性设置并继续
-XshowSettings:locale
显⽰所有与区域设置相关的设置并继续
-X 选项是⾮标准选项。如有更改,恕不另⾏通知。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。