我希望能够编辑字节码并重新编译成可执行的类文件。我不知道该怎么做。我尝试使用 javap -c 和 -v 进行反编译,编辑某些内容,然后将其更改回我的 Class 文件,但出现错误“错误:无法找到或加载主类 Test.class”。我还想从字节码生成 java 源代码。有什么帮助吗?我想自己做这件事而不使用外部程序。如果可能的话,我想自己做。
问问题
1779 次
3 回答
2
Java 平台(如在 JDK 中)不提供将字节码源编译为类文件的工具(它甚至没有在 JLS 中真正指定汇编器语法)。
您可以在字节码汇编器的帮助下使用像汇编器一样的字节码。看看 Jasmin: http: //jasmin.sourceforge.net/(虽然语法与 javap 的输出并不完全相同)。
于 2013-11-04T17:11:52.263 回答
1
Javassist(Java 编程助手)是 Java 的加载时反射系统。它是一个用于在 Java 中编辑字节码的类库;它使 Java 程序能够在运行时定义一个新类,并在 JVM 加载它之前修改一个类文件。 http://java-source.net/open-source/bytecode-libraries
于 2013-11-04T17:03:53.500 回答