Java反编译与正向编译后clas文件一致,结果却不同,困惑……

黑蛋哥 2011-12-02 02:22:38
我反编译了一个A.class文件成A.java,修改了A.java部分内容后再编译成B.class(预期的两个A、B类执行结果不同),放入程序中执行后,修改前后的两个class执行结果不一样,但是当我再次反编译B.class生成C.java的时候,
发现C.java和A.java的内容居然一样,为什么内容会一样了?而执行结果却又不一样了呢?困惑……等待大虾出手
备注:1、前后jre都是一样 jre 1.5
2、使用的是Jad反编译的
3、A.class都引用了外部的类,且A与B引用的类一致
4、lib库完全相同
5、B.java编译时候无报错,但B.java中有部分小”x"(小红叉),不影响正常编译。
...全文
576 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑蛋哥 2011-12-08
  • 打赏
  • 举报
回复
我后来调试了一下,问题解决了,总结如下:问题在于我两次反编译的都是用的同一个同一版本的反编译软件jad,而且我改动的内容不大,另外上面提到的小红X是不影响Java的编译,但是实际上跟小红X相关的方法其实是没有编译成功的,所以当再次反编译之后会出现整个class类中代码方法一样,但实际上是改变了的,错在我用同一个jad以及带错编译,以至于出现这样的闹鬼现象,不知道我说清楚了,感谢各位。
黑蛋哥 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dxqrr 的回复:]

你用什么反编译的
[/Quote]用jad
jd-GUI0.3.3
JD-CORE 0.6.0
dracularking 2011-12-05
  • 打赏
  • 举报
回复
由.java到.class是唯一对应,反之则未必
五哥 2011-12-05
  • 打赏
  • 举报
回复
内容一样是指 方法体 的代码一样么 ?

反编译出来的 ,方法体可能不一样的
Seady 2011-12-05
  • 打赏
  • 举报
回复
!!!! 是不是 命名不同??? 注释也木有?
cystc123 2011-12-04
  • 打赏
  • 举报
回复
反编译只是一般体现下代码逻辑,并不是完全一模一样的
dxqrr 2011-12-04
  • 打赏
  • 举报
回复
你用什么反编译的
EIDSON_OOP 2011-12-04
  • 打赏
  • 举报
回复
求代码。。。
黑蛋哥 2011-12-02
  • 打赏
  • 举报
回复
大虾们注意:为什么内容会一样了中的“内容”指的是“两次反编译后的代码一样”。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧