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

发布于 2024-11-10 16:16:07 字数 227 浏览 3 评论 0原文

我使用 ProGuard 将一些 jar 文件从类文件版本 49.0“升级”到 50.0。

因为在 50.0 版本中预验证是可选的,所以我想知道是否有一种方法可以检查类文件中是否确实具有 StackMapTable 属性。

(这并不是说我不信任 ProGuard“[...]以下选项通过更新其内部版本号并预先验证它们,将类文件升级到 Java 6。”但我想了解如何验证是否存在StackMapTable。)

I "upgraded" some jar files from class file version 49.0 to 50.0 with ProGuard.

Because preverification is optional with version 50.0, I wonder if there is a way to check if the class file has really an StackMapTable attribute in it.

(It's not that I don't trust ProGuard "[...] The following options upgrade class files to Java 6, by updating their internal version numbers and preverifying them." but I'd like to learn how to verify the existance of the StackMapTable.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澜川若宁 2024-11-17 16:16:08

Javaasist 支持查看堆栈映射表。

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

Javaasist has support for reviewing stack map tables.

The one other nugget I came across was java -XX:-FailOverToOldVerifier -Xverify:all which should only verify if there is SMT information in a 50+ version class file. However, I haven't tried that and cant even tell you what it might look like on output.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文