jar包反编译工具

jar包反编译工具在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。  有道是,知其然才知其所以然。有时候,我们…

大家好,又见面了,我是你们的朋友全栈君。

在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。

  有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的非凡需求。

前期预备
  Java反编译工具:
  JGUI  http://pan.baidu.com/s/1o6xCtsQ
  压缩工具:
  Winrar

开始
  1. 将jar包解压
  我们可以使用winrar工具将jar解压到指定目录

  2. 反编译class
  使用 Java 反编译工具,将class文件反编译为java文件。(大多数反编译工具只提供单个class文件的反编译,这里推荐”小颖JAVA源代码反编译”工具,可以反编译一个目录下的所有class文件)

  3. 构建项目
  我们将反编译后的java文件设为项目的源文件目录。
  将jar,及jar所需要的其它lib,作为libraries加入项目中,这样可以保证我们的java文件可以编译。

  4. 对反编译的java进行修改
  通过反编译的java文件,可能还有错误,不能编译通过,在不影响作者原始意图的前提下,我们必须对它进行小量修改,保证可编译通过。
  保证java文件可以编译通过后,我们再在其基础上进行修改,使之符合自己的需求。

    
  5. 编译修改的java
  编译修改后的java文件,注重的是,最好只编译修改的单个java文件。
  编译完成后,我们进行测试,保证修改无误。因为JVM会先找寻classes目录下的class文件,并率先加入,这样我们修改编译后的class文件,便是测试时使用的class文件。
  重复这个过程,直至java达到我们的目的。

 

    不需要在命令行编译,将项目反编译成.java后将整个工程导入到Eclipse中,直接在Eclipse中查看.class文件

  6. Jar打包
  将修改生成后的class文件,替换我们将jar解压缩目录下的相应class文件,重新打包生成jar。
  我们可以使用jar命令进行打包(进入目录后执行jar -cvf manageRC.jar .)也可以使用winrar工具进行打包。使用winrar工具打包时,要注重选择压缩文件格式为zip,并将生成的压缩包文件的后缀名设置为jar。

  替换原来的jar。再进行最后一次测试。

转载于:https://my.oschina.net/u/2499632/blog/845565

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156956.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • EXTJS 教程目录

    EXTJS 教程目录  本人开发extjs有两三个月了,做了三个左右的项目,其中后台都是用它来完成的。现在想借此机会整理一下用extjs开发的一些思维。  其实本人并没有完全地看过一本extjs的书籍,只是在开发过程中遇到什么问题就去百度什么。结果到现在开发时基本的东西都记不住,每次都是从旧项目中拷贝要用的东西出来,结果效率很慢。ps:以下教程都是采用extjs3.4都编写的  言归正传,以下的目录…

  • oracle查找数据库中所有表_oracle查看某个表的索引

    oracle查找数据库中所有表_oracle查看某个表的索引ORACLE查询数据中所存在的表,搜索指定的表

  • 如何是HTML页面中的表单居中显示[通俗易懂]

    如何是HTML页面中的表单居中显示[通俗易懂]在进行前端页面设置的时候,发现写完的form表单始终无法居中显示,详细如图1所示:图1:问题图示代码如下:分析原因:form本来就只是一个表单而已,对页面根本就没有布局上的作用.,因此无论怎么设

  • HOG(方向梯度直方图)

    HOG(方向梯度直方图)

  • haxm intel庐_如何开启Intel HAXM功能「建议收藏」

    haxm intel庐_如何开启Intel HAXM功能「建议收藏」1.启用BIOS中的Intel(R)VirtualizationTechnology选项2.设置成功后,在控制台中输入scqueryintelhaxm。出现下图即为成功3.启动androidSDK,在Extras目录的最下边,勾选IntelHAXM项,并下载4.下载完成后,打开目录:Sdk\extras\intel\Hardware_Accelerated_Execution_…

  • CreateMutex互斥量

    CreateMutex互斥量C++API CreateMutex找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。CreateMutex()函数可用来创建一个有名或无名的互斥量对象。HANDLECreateMutex(  LPSECURITY_ATTRIBUTES lpMutexAttributes,//指向安全属性的指针  BOOL bInitialOwner,//

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号