So erhalten Sie die Umgebungsmethode in einer Java-Quelldatei für eine bestimmte Zeilennummer

8

Ich habe eine Zeilennummer einer Java-Quelldatei und möchte die Quelltextmethode für diese Zeilennummer programmatisch erhalten.

Ich schaute in ANTLR , was mir nicht sehr geholfen hat.

Janino ( Ссылка ) scheint vielversprechend zu sein, ich würde den Code scannen und parsen (und wenn nötig kompilieren). Dann könnte ich JDI und

verwenden %Vor%

Ich weiß immer noch nicht, wie ich JDI dafür verwenden soll und habe kein Tutorial gefunden, das irgendwo in diese Richtung geht.

Vielleicht gibt es einen anderen Weg, den ich komplett vermisse.

    
roesslerj 18.12.2009, 13:19
quelle

3 Antworten

11

Wenn Sie Java 6 verwenden und es Ihnen nichts ausmacht, Suns APIs zu verwenden, können Sie Java API . Sie müssen tools.jar zu Ihrem Klassenpfad hinzufügen.

%Vor%     
Eli Acherkan 18.12.2009, 14:22
quelle
3

Sie können den ASM -CodeVisitor für die Informationen zur Debugging-Zeile von einer kompilierten Klasse abrufen. Dies erspart Ihnen das Parsen von Java-Quelldateien.

%Vor%

Für Klasse A:

%Vor%

Dies erzeugt:

%Vor%

Wenn Sie diese Informationen zur Laufzeit benötigen. Sie können eine Ausnahme erstellen und sich den Stack ansehen Spurenelemente .

    
Thomas Jung 18.12.2009 14:02
quelle
0

vielleicht können Sie eine Exception werfen, sie fangen, das entsprechende Stacktrace-Element extrahieren, um den Methodennamen zu erhalten.

    
chburd 18.12.2009 14:07
quelle

Tags und Links