各位java高手,关于.jar包中的.class文件修改的问题
一个.jar包,里面有三千多个.class文件,我想修改其中一个。用过反编译成.java修改后再编译的办法,行不通,因为调用太多。请问各位高手有什么办法?十分感谢。感谢回...
一个.jar包,里面有三千多个.class文件,我想修改其中一个。用过反编译成.java修改后再编译的办法,行不通,因为调用太多。请问各位高手有什么办法?十分感谢。
感谢回答,byerain,能否说得更详细一些,例如用什么工具等。我不怎么懂得编程的。我只想修改这个包里面的一个.class文件的其中一行。
六月十五日补充:我解压后,用小颖Java源代码反编译专家把整个目录下的.class都反编译出来了,修改后,应该用什么工具来重新编译最好呢? 展开
感谢回答,byerain,能否说得更详细一些,例如用什么工具等。我不怎么懂得编程的。我只想修改这个包里面的一个.class文件的其中一行。
六月十五日补充:我解压后,用小颖Java源代码反编译专家把整个目录下的.class都反编译出来了,修改后,应该用什么工具来重新编译最好呢? 展开
2个回答
展开全部
不要修改了,给它派生出一个子类或编辑同一个类后把源类替换掉得了。
上述方法是通过调用这个类包派生出一系列类重新生成一个JAR文件与其共用,使它达到你想要的效果,不过现在想想这个办法工作量也不小,考虑下一个试试。
你可以把他们解压出来,然后反编译你需要改动的那个类,改动期间再进行反编译需要牵涉到的类,这样就不需要全部反编辑了。
现在我还没有别的捷径,也很想知道。
六月十五日
想把它压缩成jar文件,暂且把java独立应用程序分成两种:
1)没有用到Package的普通程序;
2)有Package的,一般有多个.class文件才用的。
1)比如你写的java文件的目录是:D:\JAVA\test.java;那么你运行完会在同一目录下生成一个test.class文件,这时新建一个MANIFEST.txt文档(名字看清楚了)。
打开写入以下内容:
Manifest-Version: 1.0
Created-By: 1.5.0_08 (Sun Microsystems Inc.)
Main-Class: test
保存为MANIFEST.MF。从命令行进入到JAVA目录下,
敲入: jar cvfm test.jar manifest.mf test
这样就生成了test.jar文件,直接点击就可以运行。
2)还是这个目录:D:\JAVA\test1.java和test2.java;且两个程序都中有package com.chat,就是把生成的.class放在里面,这时的MANIFEST.MF(可以用写字板打开)
内容是:
Manifest-Version: 1.0
Created-By: 1.5.0_08 (Sun Microsystems Inc.)
Main-Class: com.chat.test1
注:test1里必须有main函数。
从命令行进入到JAVA目录下,
敲入:jar cvfm t1.jar manifest.mf com/*;test2
同理。在DOS 下
jar fc a.jar a
a 是你要打包文件夹
a.jar 是打包后的文件名 随便命名。
上述方法是通过调用这个类包派生出一系列类重新生成一个JAR文件与其共用,使它达到你想要的效果,不过现在想想这个办法工作量也不小,考虑下一个试试。
你可以把他们解压出来,然后反编译你需要改动的那个类,改动期间再进行反编译需要牵涉到的类,这样就不需要全部反编辑了。
现在我还没有别的捷径,也很想知道。
六月十五日
想把它压缩成jar文件,暂且把java独立应用程序分成两种:
1)没有用到Package的普通程序;
2)有Package的,一般有多个.class文件才用的。
1)比如你写的java文件的目录是:D:\JAVA\test.java;那么你运行完会在同一目录下生成一个test.class文件,这时新建一个MANIFEST.txt文档(名字看清楚了)。
打开写入以下内容:
Manifest-Version: 1.0
Created-By: 1.5.0_08 (Sun Microsystems Inc.)
Main-Class: test
保存为MANIFEST.MF。从命令行进入到JAVA目录下,
敲入: jar cvfm test.jar manifest.mf test
这样就生成了test.jar文件,直接点击就可以运行。
2)还是这个目录:D:\JAVA\test1.java和test2.java;且两个程序都中有package com.chat,就是把生成的.class放在里面,这时的MANIFEST.MF(可以用写字板打开)
内容是:
Manifest-Version: 1.0
Created-By: 1.5.0_08 (Sun Microsystems Inc.)
Main-Class: com.chat.test1
注:test1里必须有main函数。
从命令行进入到JAVA目录下,
敲入:jar cvfm t1.jar manifest.mf com/*;test2
同理。在DOS 下
jar fc a.jar a
a 是你要打包文件夹
a.jar 是打包后的文件名 随便命名。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询