如何编辑java.class文件的实际代码?

如何编辑java.class文件的实际代码?,java,Java,我有一个jar,我想取出一个类文件并向其中添加几行代码。我有一个类编辑器,但实际上你不能更改任何代码,你可以更改常量,仅此而已。我有一个程序,你可以从.class中读取源代码,但是你不能对它做任何更改。是否有可以从.class文件中读取和编辑源代码的程序或eclipse插件?看看反编译器。他们将把java字节码转换回源代码。这种编译器的一个例子是JD: 编辑源代码后,您必须再次编译代码并将其打包到相应的.jar文件中。这需要一个java反编译器。这将从类文件中取出字节码,并将其转换回源代码。从那

我有一个jar,我想取出一个类文件并向其中添加几行代码。我有一个类编辑器,但实际上你不能更改任何代码,你可以更改常量,仅此而已。我有一个程序,你可以从.class中读取源代码,但是你不能对它做任何更改。是否有可以从.class文件中读取和编辑源代码的程序或eclipse插件?

看看反编译器。他们将把java字节码转换回源代码。这种编译器的一个例子是JD:


编辑源代码后,您必须再次编译代码并将其打包到相应的
.jar
文件中。

这需要一个java反编译器。这将从类文件中取出字节码,并将其转换回源代码。从那里,您需要重新编译反编译器生成的.java文件

以下是我看到的一些java de编译器:


如果文件的版本足够旧,可以使用将其分解为字节码,编辑字节码,然后使用重新组装。不幸的是,这些工具已经有一段时间没有更新了


它们不生成Java代码;您必须学习Java字节码。但是它比所谓的“反编译器”方法更可靠。

因为Java.class文件是字节码格式的,所以不能像编辑.Java源文件那样修改它们。字节码是一种更接近机器语言的低级语言,而不是Java本身


如果需要修改源代码,一个选项是使用反编译器,例如,获取源文件,然后将其更改并使用javac重新编译为.class。确保您知道原始jar文件使用了哪个版本的Java语言(1.4、5、6、7、8)。

我不知道每个场景,因为我只测试了它们,看看它们是否真的有效。对于小项目,它生成了具有相同功能的正确代码。很明显,它不能让你回复注释,这很重要。好吧,谢谢你,我成功地反编译了它,但是现在当我尝试使用javac编译它时,它不起作用,因为它找不到jar中的其他.java文件。它不允许我只编译一个类。我必须反编译jar中的所有其他类,然后重新编译它们吗?有很多类,所以这需要很长的时间才能完成,不幸的是,使用javac是的。您应该反编译并重新编译整个jar文件。确保还将所有其他依赖jar文件放在编译器类路径上。