[alibaba/arthas]存在内部类mc后生成多个class,如何retransform

2024-07-09 200 views
4
环境信息
  • 操作系统版本: centos7

  • 目标进程的JVM版本: 180_144

  • 执行arthas-boot的版本: 3.5.2

  • source 一个有内部类的A类后,mc生成3个class,retransform类名对应的A.class,提示delete a method 非法。这种场景如何热部署?

回答

4

可以直接传入多个文件路径的

    @Argument(argName = "classfilePaths", index = 0, required = false)
    @Description(".class file paths")
    public void setPaths(List<String> paths) {
        this.paths = paths;
    }

有用lambda的情况下,用最新版本的jdk8,旧版本可能有问题。

2

还是不行,会不会是内部类访问外部类,mc生成的access$000这类方法和原来的不一样?

6

试了下,确实是这个原因导致的