jar 中的 Java 类文件可以轻松替换和修改。例如,以下命令可用于替换 jar 中已编译的类文件:
jar uf JarFile.jar com\something\Class.class
如果类文件被替换为没有依赖关系被破坏的文件,那么代码仍然能够执行。不在 jar 中的类文件也会发生同样的情况。
有什么方法可以验证一组类文件(无论是否在 jar 中)以查看它们的所有依赖项是否存在并且没有损坏?
我不想阻止类文件被修改,而是能够验证更改是否有效(关于依赖项)。编译器在编译时会进行这种检查(依赖检查),但是一旦编译了类,如何验证类文件本身呢?