我想用python做一个判断本地字节码和服务器字节码是否相同的工具。
开始用的是HASH算法计算文件是否不同。但是发现同JDK编译出的字节码不一样,就算.JAVA文件内容一模一样,编译出来的字节码也不一样。
有没有办法能够判断两份字节码是否相同?
求赐教
无解,自己结贴吧
好像有个工具(UE)可以查看class文件中的二进制,不同jdk编译相同文件后产生的二进制码只有一个地方不一样,好像是第一行 具体第几列 忘记了。我之前遇到这样的问题,因为线上的jdk是jdk6 我本地是jdk7 然后用文件对比工具 去看class文件 发现 没改动的代码 也不一样,然后找资料发现不同jdk编译后的class文件不同 。
我看过二进制,不一样的地方特别多,您后来怎么解决的?
@坚守信念: 用相同的jdk 去编译 要么 全覆盖! 哈哈
@坚守信念: 要么 一个一个去点开 看你改的是哪些 只替换你改的
@^keepHungry$: 唉 看来事情远远比想象的要复杂
@坚守信念: 你自己改的文件 你应该知道是哪些 对吧 然后 替换 不就行了么
很多编辑器都有compare功能。
我用javap -c 命令反编译出的结果也不一样
jdk编译字节码的编辑器吗?
通过md5 或 hash 难道不行么?
嗯