gpt4 book ai didi

java - 无论如何要获取用于构建 .class 文件的编译标志?

转载 作者:行者123 更新时间:2023-12-04 06:33:42 25 4
gpt4 key购买 nike

我有一堆.class不是我自己构建的文件。

从这些 .class文件,是否有可能知道用于构建它们的各种编译标志?诸如...优化打开或关闭,调试信息打开或关闭等。

最佳答案

没有主要的 Java 编译器进行任何类型的优化(除了一些常量值折叠)。这通常是留给 JVM 在运行时完成的。

找出是否有 .class生成有或没有调试信息,运行 javap关于它使用 -v标记并寻找 LineNumberTable属性。它们应该如下所示:

行号表:
第 7 行:0
第 8 行:8

如果类是用完整的调试信息(包括局部变量)编译的,那么它还包含一个 LocalVariableTable像这样:

本地变量表:
起始长度插槽名称签名
0 9 0 argc [Ljava/lang/String;

实际影响输出的一个编译器标志是 -encoding指定输入源文件编码。由于 .class 中的字符串文字文件总是使用 UTF-8,无法检测来自 .class 的原始源文件编码文件。

关于java - 无论如何要获取用于构建 .class 文件的编译标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5087633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com