gpt4 book ai didi

java - 是否可以用不同长度的字符串重命名Java类?

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

我可以使用与前一个类名长度相同的任何字符串来重命名已编译的 java 类,但是当长度不同时,.class 文件将停止工作并显示如下错误:

unknown constant tag X

其中 X 是一个数字,每次我尝试运行小程序时该数字都会发生变化。

有没有一种方法可以在不使用外部程序的情况下使用与先前名称不同长度的字符串重命名已编译的java类?只需编辑 .class 文本内容即可。

最佳答案

我会直接说出来 - 手动编辑 .class 文件可能不是最好的主意。我的意思是,重新编译你的程序并不是那么困难。另外,如果您只是重命名原始源中的类,那么您的源实际上将与类文件匹配(为什么不呢?)。如果你没有源代码,我相信你会找到一个像样的反编译器(只需谷歌它 - 似乎有一些好的反编译器)。这将允许更轻松地重命名类。

但是,如果您真的非常想直接操作编译后的代码,您可能需要查看 ASM项目。我相信它可以让你做你想做的事(尽管对我来说这似乎有点复杂,而且它会涉及创建一个外部java程序,就像你不想要的一样)。

如果您仍然执意手动更改 .class 文件,那么我可以推荐您 The JAVA Virtual Machine Specification (特别是第 4 章),您可以在其中获取 .class 文件的所有精彩详细信息。

关于java - 是否可以用不同长度的字符串重命名Java类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448390/

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