jar包中替换指定的class文件方法详解
线上, 替换jar包中的一个class文件
cento7当前目录下:
-rw------- 1 root root 6827 Oct 16 15:00 InvoiceApplyService.class
-rw-r--r-- 1 root root 46470349 Oct 16 14:59 ntocc-plat-api.jar
ntocc-plat-api.jar 目标jar包
InvoiceApplyService.class: mkdir -p ./com/xxx/ntocc/plat/api/service/order/
是要更新进去的文件(刚编译完传上来的)
要更新进去, 首先要目录和jar包中目录一样, 所以要创建文件夹目录,创建完后将class文件挪进去;
创建类目录挪进去class: mv InvoiceApplyService.class com/xxx/ntocc/plat/api/service/order/
jar uvf ntocc-plat-api.jar com/xxx/ntocc/plat/api/service/order/InvoiceApplyService.class` adding: com/arpa/ntocc/plat/api/service/order/InvoiceApplyService.class(in = 6827) (out= 2996)(deflated 56%)
以下是其他基础jar命令
jar用法:创建、更新、解压、查阅
两个源码文件
TestJar.java
public class TestJar { public static void main(String[] args){ System.out.println("==============NEW INSERT================"); System.out.println("========niewj Main Test ==========="); System.out.println(MyUtil.call("hello")); System.out.println("========niewj Main Test ==========="); } }
MyUtil.java
public class MyUtil { public static String call(String param){ return "param=" + param; } }
创建c (create)
cfe
格式: jar cfe jar文件名 Main方法类名 文件列表
生成jar: jar cfe Test.jar TestJar *
jar cfe Test.jar TestJar *
更新u (update)
jar包中java文件改动替换
改动后编译, 而后执行命令替换更新
jar uvf Test.jar TestJar.class
class文件替换多个
jar uvf Test.jar TestJar.class MyUtil.class
解压x (extract)
解压到当前: jar -xvf Test.jar
jar xvf .\Test.jar 已创建: META-INF/ 已解压: META-INF/MANIFEST.MF 已解压: MyUtil.class 已解压: MyUtil.java 已解压: TestJar.class 已解压: TestJar.java
列表t (view)
只看不动: jar tvf Test.jar
jar tvf .\Test.jar 0 Mon Oct 16 14:17:26 CST 2023 META-INF/ 90 Mon Oct 16 14:17:26 CST 2023 META-INF/MANIFEST.MF 714 Mon Oct 16 14:03:36 CST 2023 MyUtil.class 120 Mon Oct 16 14:03:28 CST 2023 MyUtil.java 597 Mon Oct 16 14:03:50 CST 2023 TestJar.class 247 Mon Oct 16 14:11:40 CST 2023 TestJar.java
以上就是jar包中替换指定的class文件方法详解的详细内容,更多关于jar包替换指定class文件的资料请关注脚本之家其它相关文章!
最新评论