Java:Jar包反编译,解压和压缩

news2024/10/3 6:32:24

1、简述

JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式。 JAR 文件非常类似 ZIP 文件。准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的 (也可以自行创建)

2、反编译

反编译常用的工具:luyten,jd-gui,我们可以通过反编译查看原来代码,同时可以通过将class文件反编译成Java文件。
在这里插入图片描述
备注:ThreadPoolExecutor 多线程反编译是无法看到,所以要注意当前class文件是否使用的多线程,如果采用多线程,是无法直接反编译Java来使用。

3、命令参数

用法:jar {ctxui} [vfmn0PMe] [jar文件] [清单文件] [入口点] [-C目录]文件…

-c:创建新档案
-t:列出要归档的目录
-x:从存档中提取命名(或所有)文件
-u:更新现有档案
-v:在标准输出上生成详细输出
-f:指定归档文件名
-m:包含来自指定清单文件的清单信息
-n:在创建新存档后执行Pack200规范化
-e:指定独立应用程序的应用程序入口点
-0只存储;不使用ZIP压缩
-P:从文件名保留前导的“ /”(绝对路径)和“ ..”(父目录)组件
-M:不为条目创建清单文件
-i:为指定的jar文件生成索引信息
-C:更改为指定目录并包含以下文件
如果任何文件是目录,则将对其进行递归处理。
清单文件名称,归档文件名称和入口点名称为
以与“ m”,“ f”和“ e”标志相同的顺序指定。

A.解压

在jar包当前文件下,cmd指令 通过jar -xvf解压当前jar包

jar -xvf shop-order-0.0.1-SNAPSHOT.jar

在这里插入图片描述

B.压缩

在当前文件目录下,替换我们所需要替换的文件,重新将当前解压的jar压缩,注意后缀要带上./META-INF/MANIFEST.MF .:

jar -cvf0m shop-order-0.0.1-SNAPSHOT.jar ./META-INF/MANIFEST.MF .

在这里插入图片描述

C.更新

在不解压的情况下,更新jar包某个文件,可以直接通过jar 更新指令对某个文件修改:

jar -uvf shop-order-0.0.1-SNAPSHOT.jar BOOT-INF/classes/application.properties

在这里插入图片描述

4、Jar启动

在Linux环境启动参数设置:

java -Xms512m -Xmx512m -Xmn1024k -Xss1024k -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m  -jar shop-order-0.0.1-SNAPSHOT.jar 

a、-Xms :表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。
b、-Xmx:表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。
c、-Xmn:至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn。
d、-XX:MaxMetaspaceSize:设置元空间最大值,默认是 -1,即不限制,只受限于本地内存大小
e、-XX:MetaspaceSize:指定元空间的初始空间大小,达到该值就会触发垃圾回收进行类型卸载,同时收集器会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过 -XX:MaxMetaspaceSize的情况下,适当提高该值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯必备算法分享——差分算法

AcWing—差分算法 文章目录AcWing---差分算法一、什么是差分?二、差分的作用三、一维差分模板四、二维差分五、二维差分构造方法图示:六、二维差分矩阵模板总结差分算法是前缀和算法的逆运算。两者可以对比着学习: 一、什么是差分&#xff1…

旭日图超越了传统的饼图和圆环图,能表达清晰的多层级和归属关系

“旭日图是什么?用来干什么?” “没听说过旭日图......” “旭日图不就是多层饼图嘛......” 鉴于很多人对旭日图都不太了解,那今天我们就用平台的旭日图为大家讲解。旭日图看似低调简单,却一点都不简单! 旭日图由多…

关于pool.apply_async的学习【参数问题】

一、学习 参考:(1条消息) python pool.apply_async调用 参数为dataset的函数 不执行问题解决_嗯嗲和滴的博客-CSDN博客_pool.apply_async参数 一个参数的情况 一定要加逗号 在只有一个参数要传时 需要写成列表/元组的形式: task_fun.apply_async(args[v…

从零开始学前端:垃圾回收机制,闭包,案例 --- 今天你学习了吗?(JS:Day11)

从零开始学前端:程序猿小白也可以完全掌握!—今天你学习了吗?(JS) 复习:从零开始学前端:作用域、执行顺序 — 今天你学习了吗?(JS:Day10) 文章目…

网络编程——封装和分用(图解)

一、什么是封装 💌💌💌网络编程中的封装,并不是Java面向对象思想里的封装,继承,多态的封装.它是应用程序通过TCP协议传送数据时,每一次进行包装送入网络中,像极了发快递时的你. 思考…

FFplay文档解读-51-多媒体资源

33. 多媒体资源 以下是当前可用多媒体源的说明。 33.1 amovie 这与电影源相同,但默认情况下会选择音频流。 33.2 movie 从电影容器中读取音频和/或视频流。 它接受以下参数: filename要读取的资源的名称(不一定是文件;它也可以是通过某…

[附源码]java毕业设计基于web的健康信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Oracle Primavera Unifier文档管理器(Document Manager)

目录 引言 介绍 引言 在 Oracle Primavera Unifier 中,文档管理器维护项目的所有文件和文档。每个项目/外壳都包含自己的文档管理器,另一个文档管理器驻留在公司级别。管理员确保员工和项目/shell 成员始终使用最新版本的文档,并使访问和分…

热成像仪在LED产品的应用

热成像仪对LED产品的检测 LED产品检测 LED作为取代传统照明工具(如白炽灯、卤素灯等)的新型光源,但其散热效果严重影响LED的实际使用寿命,散热工艺成为LED应用和发展的关键因素,红外热像仪可以进行LED温度检测,帮助验证散热工艺。…

如何对珍贵水生物标本提供三维重建,数字化技术助力长江大保护...

近日,由武汉白鱀豚保护基金会发起的“看见长江的美好”系列长江大保护行动中,英特尔 Evo X BMW i 打造了“移动数字探索工作室”,携手【云端地球】团队来到了拥有百年生命印记的地方,这里收藏着包括白鲟、白鱀豚、中华鲟、长江江豚…

密码在智能汽车数据安全领域的应用研究报告

开放隐私计算 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。 177篇原创内容 …

HTTP状态码301和302的区别

简介 在HTTP状态码中,3XX表示重定向,指网页发生了转移,重定向到目标地址中。 301:表示永久性转移 (Permanently Moved) 302:表示临时性转移(Temporarily Moved) 说明…

java基础新

目录 集合总结 ​编辑Java异常体系 常见的运行时异常? Object类有哪些方法 ​编辑权限修饰符 分布式锁 Redis和Zookeeper实现分布式所哪个效率高 分布式事务 事务失效的8种原因 TCC 如果出现网络连不通怎么办? CAP理论 CAP有哪些组合方式&…

3环境变量

文章目录前言1. 概念引入2. 环境变量PATH3. 本地环境变量与系统环境变量4. set 和 env5. main函数带参数前言 大家一开始学习Linux时候,是否对其各种命令感到过好奇,为何这样输入不同就会执行不同,他的底层实现逻辑到底是怎么样的呢? 在解答这个疑惑之前,我们需要学习环境变…

计算机网络-网络层(移动IP通信过程,网络层设备路由器,路由表与路由转发)

文章目录1. 移动IP2. 网络层设备(路由器)1. 移动IP 移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能. 并保证了基于网络lP的网络权限在漫游过程中不发生任何改变。 重点知识点: 移动结点…

互联网食堂大比拼,谁才是互联网养猪场?

虽然疫情导致经济不景气,但是互联网行业怎么会如此不禁波折呢? 果不其然,疫情下的大厂还是大厂! 互联网大厂的福利多多,其中最容易让人忽视,但也最让人羡慕的就是互联网大厂的食堂了。 民以食为天&#xff…

线粒体 ClpP 介导的蛋白水解作用可选择性诱导癌细胞死亡

图1. 本篇文章的几大亮点 首先,研究人员利用基因工程的方法,在人 ClpP 上建造了一个有持续活性地点突变(Y118A)。基于 OCL-AML3 和 Z138 肿瘤细胞系,研究人员研究 Y118A 点突变对于肿瘤细胞的影响。研究发现&#xff…

耗时半月,终于把牛客网上的Java面试八股文整理成了PDF合集

前段时间有不少小伙伴们私信我,最近的面试题越来越困难了,要背的八股文也越来越多了,考核的也越来越细腻了,摆明了就是想让我们面试造航母嘛,真的是太为难我们这些程序员了。。。 这不,为了帮大家节约时间…

如何对低代码/无代码平台进行分类?

如何对低代码/无代码平台进行分类?一个例子就能讲清楚! 周末你外出露营,在野外需要搭一个帐篷。有两种方法: 一种是最原始的搭帐篷方法,即有隔水布、外账、内账、营柱骨架等等......另一种是直接“封装好”的&#x…

MOCO----Momentum Contrast

对比学习 这个博客写的很好,去看他的吧 对比学习是一种在高维(即指图片)的连续的输入信号上去构建字典的一种方式,这个字典是动态,因为这个字典里的key都是随机去取样的,而且用来给这些key做编码的也是在训练过程中不停地改变的…