直接替换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文件风险的主要内容,如果未能解决你的问题,请参考以下文章

tomcat 替换class文件需要重启吗

tomcat 替换class文件需要重启吗

换.class文件需要重启服务器吗

替换class文件需要重启tomcat吗

替换jar包内指定的文件

打包的jar 替换或修改文件