java的.class文件反编译

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:08:20
修改一版系统代码时,没有.java源文件,只有.class文件。
把.class文件通过反编译软件编译成.java文件后,能完整的显示java文件内容吗?
对这个编译过来的.java文件进行编辑再运行生成.class文件,能否在系统里正常的运行呢?

一般的class用反编译能够看到其源代码,而且其反编译的源代码甚至可能好于本身源代码(尤其是对于逻辑处理和字符串处理)
然而涉及到exception等东西的时候可能会有问题,但是你把它放到ide里面修改一下就可以了,生成的class文件也是可行的,但是关键的一点,编译环境最好与之前的编译环境一样,否则高版本的java生成的class也许在低版本中无法调用

目前最好用的反编译工具是jad(http://www.kpdus.com/jad.html), 不过这个是一个命令行工具,如果需要反编译大量文件,可能不太方便使用。
如果你使用eclipse,可以下载插件http://sourceforge.net/projects/jadclipse/,非常方便。
使用jad反编译之后的代码,绝大多数情况是能够修改之后再次编译的,但是对于一些比较复杂尤其使用了反射机制的代码,不能保证。

java软件包内自带的有一个javap程序可以进行反编译,方法是javap +方法名。就像用java运行一样。

你能看到JDK中类的代码!用JB可以!
但你不能修改!只能通过继承来扩展它的功能!但有些类是不可继承的,那你就不能扩展此类了!

反编译是可以 不过用extends更实际一点 比较省事

没有经过混编译的,问题就不大.