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
опция пуста.
Кто -нибудь когда -нибудь сталкивался с таким странным случаем?
Решение
Используйте -g для составления вашего кода, в противном случае номера строк не хранятся (сродни трассировке стека, отображающую «Компилированный код» вместо номера строки)