idea打jar包,如何对jar包进行再次修改?

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

idea打jar包,如何对jar包进行再次修改?

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

idea打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公布于众,为了避免他人反编译,可以使用混淆器,但也只是增加代码阅读的困难性。如果不是作为商业运用,我们还是希望开发者能够提供源代码,互相学习探讨。

把swt项目打jar

  打包发布SWT程序

1。因为需要SWT的jar。但是Eclipse3。1。1配合的的SWT不是通过SWT。jar发布的!是org。eclipse。swt。win32。win32。x86_3。1。0。jar。里面包括了JINI的DLL和SWT类文件。
  

需要下载

。eclipse。org/downloads/download。php?file=/eclipse/dow 。。。 09290840/swt-3。1。1-win32-win32-x86。zip

这里有SWT。
  jar,和3个DLL,把他们解压缩出来,备用!

2。通过Eclipse的导出功能,生成一个可执行的jar,MANIFEST。MF文件选择由Eclipse生成,并且保存到项目中。(当然也可以在eclipse项目里游动添加,但是在导出时最后一步要选中您创建的manifest文件)

3。
  上面2的步骤,只是为了得到MANIFEST。MF文件。下面修改一下这个文件。

加上 Class-Path: SWT。jar

如果还有其他的jar,用空格分开,加到后面

4。再生成一次jar,MANIFEST。MF选择修改后的。

5。将打包的jar,SWT。
  jar,3个DLL放到一个文件夹下,双击可执行的jar,程序运行!。

版权声明:本站部分文章来源互联网,主要目的在于分享信息,版权归原作者所有,本站不拥有所有权,不承担相关法律责任,如有侵权请联系我们,本站将立刻删除。
(0)
上一篇 2022年5月29日 上午5:09
下一篇 2022年5月29日 上午5:09

相关推荐