Java热更代码在Linux下使用的坑(提供项目下载地址)

21 篇文章 0 订阅
12 篇文章 14 订阅

1.将写好的热更测试类放到Linux。
我是直接将项目放到了svn上面,然后通过svn在linux下直接拉取源码。然后使用使用

mvn clean package

使用上面的命令的时候一定要将依赖的tools.jar换成对应的jdk版本的。否则在linux或wind下无法执行。
将tools.jar安装为本地仓库,并导入到pom表中

>mvn install:install-file -DgroupId=com.extrajar -DartifactId=tools -Dversion=v1.0.0 -Dpackaging=jar -Dfile=tools.jar

2.更换掉使用到的tools.jar包为linux版本下的对应jar包

热更代码的方式如下

	public void hotSwap(long playerId, String classes, String jarPath) {
		try {
			executorDispatcher.submitTask(playerId, () -> {
				try {
					RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
					log.error(" runtimeMXBean Name :{} , processId : {}", runtimeMXBean.getName(), runtimeMXBean.getName().split("@")[0]);
					VirtualMachine virtualMachine = VirtualMachine.attach(runtimeMXBean.getName().split("@")[0]);
					//"E:\\HotSwap.jar ,E:\\@className1|className2"
					virtualMachine.loadAgent(jarPath, classes);
					virtualMachine.detach();
					log.error("热更代码:{}成功!", classes);
				} catch (Exception e) {
					log.error("热更代码:{}失败:", classes, e);
				}
			});
		} catch (Exception e) {
			log.error("热更失败", e);
		}
	}

使用的代理jar包是通过另一个项目来构建的。代码也基本是固定的。具体的代码我放到我的码云地址,欢迎大家下载给个星星。
https://gitee.com/hhailiang/hot-swap

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值