老赵说起来也能算个Java程序员,可是写过的Java代码并不多,可老赵实实在在是从程序员干起的。虽然肚子里也装了不少的东西,可作为一件乐此不疲的事情,就是看那些所谓“高人”的代码。

高人们的行事风格,十人十样,难一而足,不能以常人之准则判之。诸如,功能强大用之方便的IDE不用,用文本编辑器写Java代码;抑或一个类中洋洋洒洒 数千行代码,且无一行注释;再或编写完代码后,进行混淆,美其名曰“知识保护”;另者高举Opensource的大旗,源码却无处可寻;更有甚者,一个 “Hello world!”,能整出是好几种实现方式,...。请注意,我无意质询或贬低这些高人们,知识产权归创造者,理所当然。

Andy语录:代码是写的,不是看的!然而有时看高人们的代码,还是收获颇丰的,或者可以说是一种学习的捷径。

而高人们之所以高,还在于他们产出的代码,确实有过人之处,以巧为媒,以能为介,不管你们信不信,反正我是相信的!

陈述如此之多,不外乎引出标题所述的Java反编译工具: JD-GUI。老赵以前在看高人们的代码时,常用的工具是 DJJAVA,或者直接用其中所带反编译工具的内核:JAD,尤其是成批反编译一个整包的Java类时,更是如此。

今日早晨,想看看自己写的Java代码,反编译后和自己原来写的东西究竟有何区别,下载 DJJAVA 的最新版,多次不成功,不知是网络的原因,还是自己失去了耐心,决心重新找个可用的东西,结果发现了 JD-GUI 这个东东。

其优点如下:

(1) C++实现,速度奇快;免安装,一个 jd-gui.exe文件,下载后拷贝即用。

(2)勿论.class还是jar包,打开后,可以直接查看代码,且是排好版的格式。

(3)且可以直接存储源代码,最可贵的是可以将 jar 包中的源代码全部转储。

示例如下:

JD-GUI简介:JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse。

反编译有几个好处:

①可以看自己的项目中的class文件是否编译到了,因为服务器运行的是class文件。

②可以查看别人提供的jar包里面的源码,进行学习

③可以加强自己的安全意识,尽量减少代码泄露出去。不能避免别人反编译,但是我们可以增加反编译的难度。

java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI相关推荐

  1. Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]

    Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介: A.代码生成器(开发利器) 生成Java各层次的类和JSP等文件,提高开发效率 B.阿里巴巴 ...

  2. Java绘画板源码_Java 绘图板 示例源码下载(画板)

    Java 绘图板 示例源码下载(画板) java 2020-8-21 下载地址 https://www.codedown123.com/36795.html package minidrawpad; ...

  3. java微博系统源码_JAVA仿微博系统(JAVA毕业设计含源码和运行教程)

    前言 课设毕设源码收集已上传到github,包括:C,C#,C++,JAVA,PHP 等源码,更多源码在整理中.地址:https://github.com/52JDK/Source-Collectio ...

  4. python源码打包exe、exe反编译

    一.python3打包为exe文件 这里有个hello.py文件 step1:安装pyinstaller包 pip install pyinstaller step2:在cmd中进入hello.py文 ...

  5. java入侵检测源码_Java Web中的入侵检测及简单实现

    作者:EasyJF开源团队 大峡 一.简介 在Java Web应用程中,特别是网站开发中,我们有时候需要为应用程序增加一个入侵检测程序来防止恶意刷新的功能,防止非法用户不断的往Web应用中重复发送数据 ...

  6. java鱼游动源码_java版大鱼吃小鱼游戏

    [实例简介] java语言开发的简单的大鱼吃小鱼游戏,开发工具eclipse,直接将该工程导入即可运行,StartGame_Eatfish.java是开始游戏类,游戏中的声音是直接使用的第三方插件,在 ...

  7. java 线程池 源码_java线程池源码分析

    我们在关闭线程池的时候会使用shutdown()和shutdownNow(),那么问题来了: 这两个方法又什么区别呢? 他们背后的原理是什么呢? 线程池中线程超过了coresize后会怎么操作呢? 为 ...

  8. java list addall源码_Java集合:ArrayList源码分析

    其实我看到已有很多大佬写过此类文章,并且写的也比较清晰明了,那我为何要再写一遍呢?其实也是为了加深本身的印象,巩固本身的基础html (主要是不少文章没有写出来我想知道的东西!!!​!!!!)java ...

  9. java取网页源码_Java获取任意http网页源代码的方法

    本文实例讲述了JAVA获取任意http网页源代码.分享给大家供大家参考,具体如下: JAVA获取任意http网页源代码可实现如下功能: 1. 获取任意http网页的代码 2. 获取任意http网页去掉 ...

最新文章

  1. Exchange server 2010脱机工作簿故障问题
  2. “32 位应用已死!”
  3. C#方法参数传递-同时使用ref和out关键字
  4. cd linux盒上盖子不休眠,CDLinux 自动休眠功能的关闭方法
  5. 解决JQuery AutoComplete在IE9下出错的问题
  6. C++一天一个程序(七)
  7. 【BZOJ4108】[Wf2015]Catering 有上下界费用流
  8. python语言源程序文件类型_浅谈Python的文件类型
  9. java项目打jar包,并且在cmd命令行运行
  10. verilog 之数字电路 边沿检测电路
  11. erp的术语-jde系统
  12. LCD1602液晶显示设计
  13. 解决Adobe reader闪退问题
  14. 计算机网络知识点汇总(王道)
  15. 博客前端模板源码(力荐)
  16. 微信表白神秘代码!快发给ta!
  17. Struts1框架轻易入门,经典示例
  18. 【Python案例】OCR提取图片中的文字
  19. 计量芯片应用心得之硬件篇
  20. VUE前端删除和批量删除

热门文章

  1. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...
  2. mysql 视图 字典_MySQL深入01-SQL语言-数据字典-服务器变量-数据操作DML-视图
  3. 如何将多个一维列表转化为二维列表_数据分析2_如何处理一维、二维数据
  4. c ++向量库_将向量复制到C ++中的另一个向量
  5. Spring中的重试功能!嗯,有点东西
  6. 图解面试题:找出数组中重复的数字?
  7. SharedPreferences详解
  8. 安卓安装kali linux之Termux
  9. Ubuntu开发环境配置--- 安装chrome浏览器
  10. future promise shared_future简单使用