gpt4 book ai didi

java - 如何使一个类将自身复制到另一个可以用Java执行的具有不同名称的类中?

转载 作者:行者123 更新时间:2023-11-30 03:45:34 25 4
gpt4 key购买 nike

我想做的是复制给定文件名的已编译类[让我们称之为ClassA.class](在代码中作为字符串) ,到一个新文件(也定义为 ClassA 中的字符串)[让我们称之为 ClassB.class],并能够执行新复制的类(使用新文件名)使用“javac ClassB”。

最好、最简洁的方法是什么?

编辑:有效的解决方案......

将文件从 ClassA 十六进制编辑到 ClassB 成功了!所以我想任何会改变二进制代码的东西都会起作用,具有恒定(相同)长度的文件名。

最佳答案

您可以使用字节码操作库(Javassist、Asm、BCEL)复制类。

使用 Javassist 将会是这样的(没有尝试过):

ClassPool pool = ClassPool.getDefault();
CtClass cc = pool.get("ClassA");
cc.setName("ClassB");
cc.writeFile("ClassB.class");

关于java - 如何使一个类将自身复制到另一个可以用Java执行的具有不同名称的类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25814671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com