首页 新闻 会员 周边 捐助

怎么判断由不同版本JDK编译的.class字节码是否相同?

0
悬赏园豆:10 [已解决问题] 解决于 2020-01-30 11:51

我想用python做一个判断本地字节码和服务器字节码是否相同的工具。

    开始用的是HASH算法计算文件是否不同。但是发现同JDK编译出的字节码不一样,就算.JAVA文件内容一模一样,编译出来的字节码也不一样。

   有没有办法能够判断两份字节码是否相同?

求赐教

坚守信念的主页 坚守信念 | 初学一级 | 园豆:168
提问于:2018-06-29 09:55
< >
分享
最佳答案
0

无解,自己结贴吧

坚守信念 | 初学一级 |园豆:168 | 2020-01-30 11:50
其他回答(3)
0

好像有个工具(UE)可以查看class文件中的二进制,不同jdk编译相同文件后产生的二进制码只有一个地方不一样,好像是第一行  具体第几列 忘记了。我之前遇到这样的问题,因为线上的jdk是jdk6  我本地是jdk7 然后用文件对比工具  去看class文件 发现 没改动的代码 也不一样,然后找资料发现不同jdk编译后的class文件不同 。

收获园豆:8
^keepHungry$ | 园豆:516 (小虾三级) | 2018-06-29 10:41

我看过二进制,不一样的地方特别多,您后来怎么解决的?

支持(0) 反对(0) 坚守信念 | 园豆:168 (初学一级) | 2018-06-29 14:05

@坚守信念: 用相同的jdk 去编译 要么 全覆盖! 哈哈

支持(0) 反对(0) ^keepHungry$ | 园豆:516 (小虾三级) | 2018-06-29 14:08

@坚守信念: 要么  一个一个去点开  看你改的是哪些 只替换你改的

支持(0) 反对(0) ^keepHungry$ | 园豆:516 (小虾三级) | 2018-06-29 14:08

@^keepHungry$: 唉 看来事情远远比想象的要复杂

支持(0) 反对(0) 坚守信念 | 园豆:168 (初学一级) | 2018-06-29 17:05

@坚守信念: 你自己改的文件 你应该知道是哪些   对吧  然后 替换 不就行了么

支持(0) 反对(0) ^keepHungry$ | 园豆:516 (小虾三级) | 2018-06-29 17:29
0

很多编辑器都有compare功能。

收获园豆:1
花飘水流兮 | 园豆:13617 (专家六级) | 2018-06-29 13:06

我用javap -c 命令反编译出的结果也不一样

支持(0) 反对(0) 坚守信念 | 园豆:168 (初学一级) | 2018-06-29 14:04

jdk编译字节码的编辑器吗?

支持(0) 反对(0) 坚守信念 | 园豆:168 (初学一级) | 2018-12-21 09:36
0

通过md5 或 hash 难道不行么?

收获园豆:1
jinzhenshui | 园豆:383 (菜鸟二级) | 2018-07-04 15:59

支持(0) 反对(0) 坚守信念 | 园豆:168 (初学一级) | 2018-07-05 15:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册