如何检查类文件版本50.0(Java 6)是否已经过预验证?

soc*_*soc 7 java verification scala bytecode class

我使用ProGuard将一些jar文件从类文件版本49.0"升级"到50.0.

因为预验证对于版本50.0是可选的,我想知道是否有办法检查类文件中是否真的有StackMapTable属性.

(并不是我不相信ProGuard"[...]以下选项通过更新内部版本号并预先验证它们来将类文件升级到Java 6."但我想学习如何验证它的存在性StackMapTable.)

phi*_*lwb 3

Javaasist支持查看堆栈映射表。

我遇到的另一个亮点是 java -XX:-FailOverToOldVerifier -Xverify:all ,它应该只验证 50+ 版本类文件中是否有 SMT 信息。然而,我还没有尝试过,甚至无法告诉你它的输出是什么样子。