当前位置:首页 > JAVA教程 > 正文内容

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

搜教程4年前 (2019-12-04)JAVA教程147

什么是反编译?

反编译的历程与编译恰好相反,就是将已编译好的编程言语复原到未编译的状况,也就是找出程序言语的源代码。就是将机械看得懂的言语转换成程序员能够看得懂的言语。

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网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16422.html

标签: java
分享给朋友:

“java怎样反编译【JAVA教程】,java” 的相关文章

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

本篇文章给人人带来的内容是关于Java怎样建立和添补PDF表单域(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 表单域,能够按用处分为多种差别的范例,罕见的有文本框、多行文本框、暗码框、隐蔽域、复选框、单选框和下拉挑选框等,目标是用于收集用户的输入或挑选的数据。下...

Java处置惩罚PDF钤记的要领示例(代码)【JAVA教程】,Java

Java处置惩罚PDF钤记的要领示例(代码)【JAVA教程】,Java

本篇文章给人人带来的内容是关于Java 处置惩罚PDF钤记的要领示例(代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 钤记(印章)是一种在合同、单子、公牍等文件中表明执法效应、部门构造威望的主要指导物,常见于种种花样的文件、文档中。关于纸质文档能够手动盖印,但关于电子文...

ReentrantLock的完成道理引见(代码示例)【JAVA教程】,ReentrantLock

本篇文章给人人带来的内容是关于ReentrantLock的完成道理引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 在并发编程中,除了synchronized关键字,java并发包中java.util.concurrent.locks中的ReentrantLoc...

Java中建立线程的3种方法引见(代码)【JAVA教程】,Java

Java中建立线程的3种方法引见(代码)【JAVA教程】,Java

本篇文章给人人带来的内容是关于Java中建立线程的3种要领引见(代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 在java中假如要建立线程的话,平常有3种要领: 继续Thread类; 完成Runnable接口; 运用Callable和Future建立线程...

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

本篇文章给人人带来的内容是关于ThreadLocal的完成道理的剖析引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 ThreadLocal,即线程局部变量,用来为每一个运用它的线程保护一个自力的变量副本。这类变量只在线程的生命周期内有效。而且与锁机制那种以时候调...

java8中predicate的用法引见(代码示例)【JAVA教程】,java

本篇文章给人人带来的内容是关于java8中predicate的用法引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 通报代码 我们首先看一个例子,假定你有一个 Apple 类,它有一个getColor要领,另有一个变量inventory保存着一个Apples的列表...