直接替换class文件风险
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直接替换class文件风险相关的知识,希望对你有一定的参考价值。
参考技术A 较低。class文件通常很容易编译,但不存在源代码时,通常需要反编译,修改,再编译的过程,比较繁琐,而且有时候翻译的文件并不准确。我们可以通过16进制编辑器直接修改,效果也是最直接的。
2、替换完class,是否需要重启容器。如tomcat7是无需重启的,但是常量类不再规范的一个类的时候,可能修改了一个类,其他的编译好的仍然使用原值。
3超过5个class,有必要打war包,就不要单次的去替换class文件,不然出了问题还要还原上一个版本。
4、即使不重启容器,也要把缓存清除,也就是清除tomcatwork下的目录文件。
5、如果替换的class文件中包含常量,但是常量类中的常量值没有替换,就会出问题。
替换jar包内指定的文件
用Java jar 工具来替换。
① jar uvf test.jar test.class
把test.class 直接添加到jar包的根目录,也就是替换到根目录文件。
②jar uvf test.jar com/test/test.class
替换相应目录的class文件。
这里值得注意的是 test.class 必须放在com/test 文件下,要和jar的路径对应起来,否则会提示“没有这个文件或目录”。
【jar 包 和 com 文件夹的上级在同一个目录】
③ 解压jar 文件到指定目录:unzip pis-api-1.0-SNAPSHOT.jar -d jar
以上是关于直接替换class文件风险的主要内容,如果未能解决你的问题,请参考以下文章