引言
在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供详细的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很详细,这对我们使用就非常不方便。
有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的特殊需求。
前期准备
Java反编译工具:
强烈推荐,小颖JAVA源代码反编译系列专家1.4终极版。
压缩工具:
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达到我们的目的。
6. Jar打包
将修改生成后的class文件,替换我们将jar解压缩目录下的相应class文件,重新打包生成jar。
我们可以使用jar命令进行打包,也可以使用winrar工具进行打包。使用winrar工具打包时,要注意选择压缩文件格式为zip,并将生成的压缩包文件的后缀名设置为jar。
替换原来的jar。再进行最后一次测试。
总结
由于Java的跨平台性,使得java的class文件可以进行反编译,我们可以对jar文件进行修改,使之适用于自己的需求。
对jar文件进行修改,我们必须首先获得jar开发者的同意。
对jar文件进行修改,首先必须对反编译的java文件比较熟悉。这就必须有良好的代码阅读能力,清楚作者的技术架构和开发设计思想。如果没有把握,最好能与jar开发者联系,提出你的需求。
对于某些java开发者来说,并不希望将自己辛辛苦苦写的code公布于众,为了避免他人反编译,可以使用混淆器,但也只是增加代码阅读的困难性。如果不是作为商业运用,我们还是希望开发者能够提供源代码,互相学习探讨。
分享到:
相关推荐
标题中的“拼图游戏-java版,内附Jar文件和完整源代码”揭示了这是一个基于Java编程语言开发的拼图游戏...通过研究这个项目,无论是初学者还是有经验的开发者,都能从中受益,提升自己的Java编程能力和游戏开发技巧。
在Java开发中,JAR文件常用于构建可执行程序、库或部署到服务器。 在压缩包子文件的文件名称列表中,有两个文件: 1. "asm-commons-2.2.1-sources.jar":这是ASM Commons库的源代码,开发者可以查看源码来理解其...
在Android开发过程中,有时我们需要从源码中编译特定的...理解并熟练运用这些技巧,对于进行深入的Android开发和定制至关重要。记得,保持良好的编程习惯,注释清晰,这样在后续的维护和升级中能更轻松地理解代码逻辑。
增加保存配置信息到文件的功能,声音设置、显示设置、关卡选择等配置信息在修改后将会保存在jar包同级目录下(以jar相同的文件名+.cfg后缀保存) 2010-10-05 【Java版俄罗斯方块】 这个程序是用Java开发的,需要...
这个压缩包可能是一个学习Java开发WordPress插件的绝佳资源,或者对于那些希望了解如何将Java技术应用于Web开发的人来说,也是一个有趣的案例研究。通过分析和修改这些源代码,开发者可以提升自己的Java编程技巧,并...
【描述】中的内容与标题相呼应,再次强调这是一份Java专业的毕业设计项目,适用于提升Java开发者对实际项目开发的理解和技能。"其他类别"可能意味着这个项目涵盖了不止一种技术或应用领域,可能是结合了多种Web开发...
在Android开发领域,有时我们需要对已有的APK应用进行逆向工程,以便了解其工作原理、提取资源或修复某些问题。这就是反编译工具大显身手的时候。本知识点将详细讲解一个重要的2018年1月更新的Android反编译工具包,...
可以通过`Window -> Open Perspective`来选择不同的视角,例如Java开发、Web开发等。 #### 四、插件管理与扩展 1. **插件安装** - Eclipse支持丰富的插件生态系统,可以通过`Help -> Software Updates -> Find ...
综上所述,这个项目是一个基于Java开发的简单聊天应用,使用UDP/IP协议进行通信,源代码完整,适合初学者学习网络编程和Java应用开发。通过导入Myeclipse,开发者可以进一步了解项目的实现细节,甚至进行二次开发。...
Maven是一个流行的项目管理和综合工具,广泛用于Java开发,它通过管理项目的构建、依赖和文档生成来简化开发流程。 描述中的"简单的Java Maven项目"再次强调了这个项目是为了学习Maven的基础操作,可能是包含一些...
【标题】"计算机软件-编程源码-J2ME的俄罗斯方块.zip" 指的是一份使用Java ME(J2ME)平台开发的俄罗斯方块游戏的源代码包。J2ME,全称为Java 2 Micro Edition,是Java的一个子集,主要用于嵌入式设备和移动设备的...
- 如有需要,对源代码进行修改,然后使用Apktool重新打包并签名。 8. **安全与道德问题** 需要注意的是,未经许可的反编译可能侵犯他人的知识产权。因此,仅在合法和合理的情况下进行反编译,例如进行软件安全...
在安卓应用开发的世界里,有时候我们可能需要对APK文件进行反编译,以了解其内部结构、查看源代码或进行二次开发。"安卓反编译工具新版" 提供了这样的功能,帮助开发者或者安全研究人员深入探究APK的内部工作原理。...
在IT行业中,尤其是在移动应用开发领域,"反编译"是一项关键技能,它涉及对已编译的应用程序进行逆向工程,以理解其内部工作原理。Android APK文件是Android应用程序的打包格式,其中包含了所有必要的代码、资源和元...
Android是全球最广泛使用的移动操作系统之一,它的开发环境通常包括Android Studio,采用Java或Kotlin语言编写应用,并且遵循特定的SDK(软件开发工具包)和API层次结构。 【子文件解析】 虽然只给出了一个文件名 ...
在Android应用开发中,有时我们需要查看或修改APK文件的内部结构,比如分析应用的工作原理、学习别人的编程技巧或者进行安全检查。这时,就需要借助一些反编译工具,其中最常用的就是Apktool。本文将详细介绍Apktool...