L'opzione Javap -l non è in grado di visualizzare le informazioni sul numero di riga
Domanda
Il javap
Il comando ha diverse opzioni, una di queste è -l
, che può stampare il numero di riga e le tabelle variabili locali. Supponiamo che un programma Java sia stato compilato con successo e che c'è il file "Main.class", quindi in esecuzione javap -l Main
può produrre qualcosa di simile:
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;
Tuttavia, lo sto usando javap -l xxx
Comando sui file di classe di un programma Java, ma l'area del numero di riga e la tabella variabile locale è vuota (che non dovrebbe essere). Il javap
comando e altre opzioni come -s
, -verbose
Funziona bene, ma solo l'area di informazioni sulla linea corrispondente a -l
l'opzione è vuota.
Qualcuno ha mai incontrato un caso così strano?
Soluzione
Usa -G per compilare il codice, altrimenti i numeri di riga non sono mantenuti (simili alla traccia dello stack che visualizza "codice compilato" anziché il numero di riga)