Опция javap -l не может отображать информацию о номере строки

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;

Тем не менее, я использую это javap -l xxx Команда для файлов классов одной Java-программы, но область номера строки и таблицы локальных переменных пуста (чего не должно быть). javap команда и другие параметры, такие как -s, -verbose работает нормально, но только область информации о строке, соответствующая -l опция пуста

Кто-нибудь сталкивался с таким странным случаем?

1 ответ

Решение

Используйте -g для компиляции вашего кода, иначе номера строк не сохраняются (сродни трассировке стека с отображением "скомпилированного кода" вместо номера строки)

Другие вопросы по тегам