Ich habe ein Hallo Welt-Programm namens A.Class. Es wurde mit dem Befehl javac A.java
kompiliert. Alles, was es tut, ist Drucken "Hallo Welt".Wie man Java-Compiler erzeugt Zeilennummern in kompiliertem Code
Als nächstes kompilierte ich mit javac -g A.java
. Ich erwarte Zeilennummern, kann aber nicht sehen. Irgendeine Idee, was passiert ist?
Ich sehe sehr kleine Unterschiede in einigen Arten von Sonderzeichen zwischen .class-Datei von javac kompiliert und javac -g kompiliert. Aber ich kann keine Zeilennummern sehen.
Meine Neugier dafür ist, weil ich herausfinden möchte, welche Art von Auswirkungen Zeilennummern auf Leistung haben können. Zweitens möchte ich wissen, wie log4j etc Zeilennummern für die Protokollierung pflegen. Vielen Dank.
-g dient zum Generieren von Debuginformationen. Klassendateien sind Bytecode, nicht lesbar. Sie können javap verwenden, um eine Klassendatei zu zerlegen. – OldProgrammer
Haben Sie tatsächlich den Inhalt der Datei '.class' in die Frage eingefügt? Hast du das wirklich gemacht? Und wenn ich fragen darf, warum hast du es zweimal getan? –
Erste ist mit javac. Der zweite ist mit javac -g <<< kompiliert. Beachten Sie das "g". Keine Zeilennummer! Javap ist großartig, aber immer noch keine Zeilennummer! –