
class文件通常很容易编译,但不存在源代码时,通常需要反编译慎橡吵,修改,再编译的过程,比较繁琐,而且有时候翻译的文件并不准确。我们可以通过16进制编宽侍辑器直接修改,效果也是最直接的。
2、替换如答完class,是否需要重启容器。如tomcat7是无需重启的,但是常量类不再规范的一个类的时候,可能修改了一个类,其他的编译好的仍然使用原值。
3超过5个class,有必要打war包,就不要单次的去替换class文件,不然出了问题还要还原上一个版本。
4、即使不重启容器,也要把缓存清除,也就是清除tomcatwork下的目录文件。
5、如果替换的class文件中包含常量,但是常量类中的常量值没有替换,就会出问题。
jar文件,其本质就是zip压缩包,可以用任何解压缩软件打开。如果是自己写的程序,修改源程序后,重新编译,把编译手纯后的class文件添加并替换掉原来的毕纳咐文件就可以了。我用国产“好压”软件就曾这样替换过jar文件中的class文件。如果是网上下载的茄者jar文件,就要麻烦一些,打开jar压缩包,把需要的class文件反编译,然后再修改(当然要读通程序并理解),再替换。该过程需要经历四个步骤:解压,反编译,修改,打包。解压:jar文件和我们平常的rar和zip文件一袜罩样是属于压缩文件,通过一般的解压缩工具(例如:winrar)告羡闹都能解压。解压之后生成的文件为派清**.class的字节码文件。
反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。他能够将**.class文件或者直接能够将jar文件反编译为**.java文件。
得到java文件以后就可以修改里面的源代码了。
将修改好的代码编译成**.class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。
这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)