java怎样反编译【JAVA教程】,java

什么是反编译?
反编译的历程与编译恰好相反,就是将已编译好的编程言语复原到未编译的状况,也就是找出程序言语的源代码。就是将机械看得懂的言语转换成程序员能够看得懂的言语。
Java言语中的反编译平常指将class文件转换成java文件。 (引荐进修:java课程)
有了反编译东西,我们能够做许多事变,最重要的功用就是有了反编译东西,我们就可以读得懂Java编译器生成的字节码。比方我们就能够洞悉Java语法糖背地的道理。
Java经常运用反编译东西
重要引见4个Java的反编译东西:javap、jad和cfr以及可视化反编译东西JD-GUI
JAVAP
javap是jdk自带的一个东西,能够对代码反编译,也能够检察java编译器生成的字节码。javap和其他两个反编译东西最大的区别是他生成的文件并非java文件,也不像其他两个东西生成代码那样更轻易明白。
javap并没有将字节码反编译成java文件,而是生成了一种我们能够看得懂字节码。实在javap生成的文件仍然是字节码,只是程序员能够轻微看得懂一些。假如你对字节码有所控制,照样能够看得懂以上的代码的。实在就是把String转成hashcode,然后举行比较。
JAD
JAD是一个比较不错的反编译东西,只需下载一个实行东西,就可以够完成对class文件的反编译了。照样上面的源代码,运用jad反编译后内容以下:
敕令:jad.exe Decompilation.class 会生成一个Decompilation.jad的文件
CFR
JAD很好用,然则无法的是很久没更新了,所以只能用一款新的东西替换他,CFR是一个不错的挑选,比拟JAD来讲,他的语法可能会轻微庞杂一些,然则幸亏他能够用.
CFR将反编译当代Java特征–Java 8 lambdas(Java和更早版本中的Java beta 103),已反编译Java 7 String,但CFR是完整用Java 6编写的.
JD-GUI
JD-GUI 是一个用 C++ 开发的 Java反编译东西,由 Pavel Kouznetsov开发,支撑Windows、Linux和苹果Mac Os三个平台。而且供应了Eclipse平台下的插件JD-Eclipse。
JD-GUI 基于GPLv3开源协定,对个人运用是完整免费的。JD-GUI重要的是供应了可视化操纵,直接拖拽文件到窗口既可,效果图以下
以上就是java怎样反编译的细致内容,更多请关注ki4网别的相干文章!