質問

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を使用してコードをコンパイルします。そうしないと、行番号が保持されません(行番号の代わりに「コンパイルされたコード」を表示するスタックトレースに似ています)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top