
使用场景
在平常的开发中,经常会遇到一些代码bug,并且有了bug修改后需要重新打包部署至服务器以修复bug,而在一些上线部属流程比较严格的公司,这个 打包->构建->代码检测->安全检测->提交流程->审批->部署 整个流程可能就需要耗时一天,所以一般情况下,我们是通过直接替换class然后重启的方式来进行变更的。
使用方法
在这里准备一个简单的小例子来说明如何使用 这个命令
新建两个测试类
- Main.java 这个类是主类,用于调用需要被替换的类的
1 | package com.lovedata.bigdata.jar; |
- NeedReplace 这个类是需要被替换的类,这里是修改之前。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package com.lovedata.bigdata.jar;
/**
* Created by Running Snail on 2018/4/28.
*
* @author Running Snail
*/
public class NeedReplace {
public static void print() {
System.out.println("before replace");
}
}
打包为test.jar并且执行 java -jar test.jar 命令执行,执行结果如下

现在需要修改 NeedReplace 类 ,将 “before replace” 修改为 “ after replace”

在test.jar 的同目录下新建一个与NeedReplace 类的全路径相同的目录,执行以下命令
1 | md com\lovedata\bigdata\jar |
执行 java -jar 来进行替换
1 | jar uvf test.jar com\lovedata\bigdata\jar\NeedReplace.class |
再次执行 java -jar 命令查看效果,结果如下
