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;然而,我在一个java程序的类文件上使用了这个javap -l xxx命令,但是行号和局部变量表的区域是空的(这不应该是空的)。javap命令和其他选项(如-s、-verbose )可以正常工作,但只有与-l选项对应的行信息区域是空的。
有没有人遇到过这样奇怪的情况?
发布于 2011-09-06 22:48:44
使用-g编译您的代码,否则行号不会被保留(类似于堆栈跟踪显示“已编译的代码”而不是行号)
https://stackoverflow.com/questions/7321743
复制相似问题