javap option -l ne peut pas afficher les informations de numéro de ligne
Question
La commande javap
a plusieurs options, l'un d'entre eux est -l
, qui peut imprimer le numéro de ligne et des tables de variables locales. Supposons qu'un programme Java a été compilé avec succès et il y a le fichier « Main.class », en cours d'exécution afin javap -l Main
peut produire quelque chose comme:
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;
Cependant, j'utilise cette commande javap -l xxx
sur les fichiers de classe d'un programme java, mais la zone de numéro de ligne et d'une table variable locale est vide (ce qui ne devrait pas être). La commande javap
et d'autres options telles que -s
, œuvres -verbose
bien, mais seulement la zone d'information de ligne correspondant à l'option -l
est vide.
Quelqu'un at-il jamais rencontré ce cas bizarre?
La solution
Utilisez -g pour compiler votre code, sinon les numéros de ligne ne sont pas conservés (semblable à la trace de la pile affiche « code compilé » au lieu du numéro de ligne)