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

Ida*_*Ida 2 java javap

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;
Run Code Online (Sandbox Code Playgroud)

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

有没有人遇到过这种奇怪的案子?

cad*_*ian 10

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

  • +1请参阅http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html中的-g选项 (2认同)