我希望能够编辑字节码并重新编译成可执行的类文件。我不知道该怎么做。我尝试用javap -c和-v反编译,编辑一些东西,并将其更改回我的类文件,但是我收到错误“错误:无法找到或加载主类Test.class”。我还想从字节码生成java源代码。有帮助吗?我想在不使用外部程序的情况下自己做。如果可能的话,我想自己做。
答案 0 :(得分:4)
javap
的输出不适合汇编程序。如果要反汇编和重新组合Java字节码,则需要执行以下操作之一:
答案 1 :(得分:1)
Javassist(Java编程助手)是Java的加载时反射系统。它是一个用Java编辑字节码的类库;它使Java程序能够在运行时定义新类,并在JVM加载之前修改类文件。 http://java-source.net/open-source/bytecode-libraries
答案 2 :(得分:1)
java平台(如在JDK中)不提供将字节代码源编译为类文件的工具(它甚至没有在JLS中真正指定汇编语法)。
您可以在字节码汇编程序的帮助下使用汇编程序等字节码。看看Jasmin:http://jasmin.sourceforge.net/(语法与javap的输出完全不同)。