質問
javap
コマンドにはいくつかのオプションがあり、そのうちの1つはいくつかあります -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
1つのJavaプログラムのクラスファイルのコマンドですが、行番号とローカル変数テーブルの領域は空です(そうではないはずです)。 javap
コマンドおよびその他のオプション -s
, -verbose
正常に動作しますが、に対応する行情報領域のみが -l
オプションは空です。
誰かがそのような奇妙なケースに遭遇したことがありますか?
解決
-gを使用してコードをコンパイルします。そうしないと、行番号が保持されません(行番号の代わりに「コンパイルされたコード」を表示するスタックトレースに似ています)
所属していません StackOverflow