javap -l 选项无法显示行号信息

发布于 2024-12-03 08:03:35 字数 562 浏览 0 评论 0原文

javap命令有几个选项,其中之一是-l,它可以打印行号和局部变量表。假设一个java程序已经编译成功,并且有“Main.class”文件,那么运行javap -l Main 会产生类似这样的结果:

public static void main(java.lang.String[]);

LineNumberTable:
 line 100: 0
 line 101: 27
 line 275: 54

LocalVariableTable:
 Start Length Slot Name Signature
 0     55     0    args  [Ljava/lang/String;

但是,我正在使用这个javap -l xxx命令在一个java程序的类文件中,但行号和局部变量表区域为空(这是不应该的)。 javap 命令和其他选项如 -s-verbose 工作正常,但只有与 - 对应的行信息区域l 选项为空。

有谁遇到过这种奇怪的情况吗?

The javap command has several options, one of them is -l, which can print line number and local variable tables. Suppose a java program has been compiled successfully and there is the file "Main.class", so running javap -l Main can produce something like:

public static void main(java.lang.String[]);

LineNumberTable:
 line 100: 0
 line 101: 27
 line 275: 54

LocalVariableTable:
 Start Length Slot Name Signature
 0     55     0    args  [Ljava/lang/String;

However, I'm using this javap -l xxx command on the class files of one java program, but the area of line number and local variable table is empty (which shouldn't be). The javap command and other options such as -s, -verbose works fine, but only the line info area corresponding to the -l option is empty.

Has anyone ever encountered such weird case?

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

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

发布评论

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

评论(1

爱*していゐ 2024-12-10 08:03:35

使用 -g 编译代码,否则不会保留行号(类似于显示“已编译代码”而不是行号的堆栈跟踪)

Use -g to compile your code, otherwise the line numbers are not kept (akin to the stack trace displaying "compiled code" instead of the line number)

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