使用场景
在平常的开发中,经常会遇到一些代码bug,并且有了bug修改后需要重新打包部署至服务器以修复bug,而在一些上线部属流程比较严格的公司,这个 打包->构建->代码检测->安全检测->提交流程->审批->部署 整个流程可能就需要耗时一天,所以一般情况下,我们是通过直接替换class然后重启的方式来进行变更的。
使用方法
在这里准备一个简单的小例子来说明如何使用 这个命令
新建两个测试类
- Main.java 这个类是主类,用于调用需要被替换的类的
package com.lovedata.bigdata.jar;
/**
* Created by pengshuangbao on 2018/4/28.
* <p>
* 测试直接替换class文件而不用重启jar包
*
* @author pengshuangbao
*/
public class Main {
public static void main(String[] args) {
NeedReplace.print();
}
}
- NeedReplace 这个类是需要被替换的类,这里是修改之前。
package com.lovedata.bigdata.jar;
/**
* Created by pengshuangbao on 2018/4/28.
*
* @author pengshuangbao
*/
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 类的全路径相同的目录,执行以下命令
md com\lovedata\bigdata\jar
执行 java -jar 来进行替换
jar uvf test.jar com\lovedata\bigdata\jar\NeedReplace.class
再次执行 java -jar 命令查看效果,结果如下
本文作者: 彭双宝
原文链接: http://blog.lovedata.net/734335ef.html
网友评论