如何修改jar包里面的.class文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改jar包里面的.class文件相关的知识,希望对你有一定的参考价值。
该过程需要经历四个步骤:解压,反编译,修改,打包。解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为**.class的字节码文件。
反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。他能够将**.class文件或者直接能够将jar文件反编译为**.java文件。
得到java文件以后就可以修改里面的源代码了。
将修改好的代码编译成**.class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。
这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。 参考技术A 该过程需要经历四个步骤:解压,反编译,修改,打包。
解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为**.class的字节码文件。
反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。他能够将**.class文件或者直接能够将jar文件反编译为**.java文件。
得到java文件以后就可以修改里面的源代码了。
将修改好的代码编译成**.class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。
这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。 参考技术B 不可以修改,有修改的时间,还不如你直接修改java然后再次编译。 参考技术C 该过程需要经历四个步骤:解压,反编译,修改,打包。
解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为**.class的字节码文件。
反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。他能够将**.class文件或者直接能够将jar文件反编译为**.java文件。
得到java文件以后就可以修改里面的源代码了。
将修改好的代码编译成**.class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。
这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。
如何使用将单个的class文件打成jar包
1、 把两个.class文件打成jar包(1)打开cmd(2)进入到准备打包的目录,找到要打包的文件,这里分别是
ExampleService.class和Examples.class文件
(3)输入:jar cvf (新jar的名字) (.class文件,多个则中间用空格隔开)
如:jar cvf chart.jar ExampleService.class Examples.class
(4)OK,标红框的是打好后的文件
2、把多个文件和.class文件打成jar包
(1)新建一个manifest.txt文件,在里面写一句就可以了:Manifest-Version: 1.0
(2)然后把manifest.txt的后缀改成.mf即变成了manifest.mf
(3)进入cmd,进入准备打包的那个根目录,这里把要打包的文件夹与manifest.mf放在了一个cd目录下
(4)输入:jar cfm (新jar包的名字) manifest.mf (目录名称)
注:jar 是打包命令;cfm 是参数; Notepad.jar 是打完包后的文件名;
参数c表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字;m表示文件清单文件的名字。
*.class 只能把 class 文件打包进去,改成 *.* 可以把当前目录中的文件和文件夹全部打包进去。
(5)这里输入根目录或直接输入要打包的目录都可以,打出来的包是相同的 参考技术A jar应用先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar-help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:用法:jarctxu[vfm0Mi][jar-文件][manifest-文件][-C目录]文件名选项:-c创建新的存档-t列出存档内容的列表-x存档中的命名的(或所有的〕文件-u更新已存在的存档-v生成详细输出到标准输出上-f指定存档文件名-m包含来自标明文件的标明信息-0只存储方式;未用ZIP压缩格式-M不产生所有项的清单(manifest〕文件-i为指定的jar文件产生索引信息-C改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。清单(manifest〕文件名和存档文件名都需要被指定,按'm'和'f'标志指定的相同顺序.示例1:将两个class文件存档到一个名为'classes.jar'的存档文件中:jarcvfclasses.jarFoo.classBar.class示例2:用一个存在的清单(manifest)文件'mymanifest'将foo/目录下的所有文件存档到一个名为'classes.jar'的存档文件中:jarcvfmclasses.jarmymanifest-Cfoo/. 参考技术B 可以用Eclipse右击需要打成jar包的java文件,选择export→java→jar file,
点击next,设置保存路径和保存名称即可
以上是关于如何修改jar包里面的.class文件的主要内容,如果未能解决你的问题,请参考以下文章
直接修改别人jar包里面的class文件 工具:jclasslib