Hat Java ein Äquivalent zu C # 's Environment.GetCommandLineArgs ()?

8

Ich weiß, dass ich die Befehlszeilenargumente in der "main" -Methode bekommen kann, aber ich muss sie indirekt erhalten können.

Danke für Ihre Hilfe.

    
Mackenzie 22.01.2011, 02:19
quelle

3 Antworten

8

Der folgende Ausdruck ist genau das, was Sie wollen:

System.getProperty ("sun.java.command")

    
Aleksey 23.03.2012 19:11
quelle
2

Sie können die Threads auflisten, den Hauptthread suchen und den Stack-Trace nach unten durchsuchen, bis Sie den Aufruf von main finden und die Argumente herausziehen.

update Ein Kommentar weist darauf hin, dass dies nicht von selbst funktioniert, und ich denke, der Kommentar ist korrekt. Ich habe die Fähigkeiten von Stack-Introspektion oder geistig gemischt in JVMTI falsch gemerkt.

Also, hier ist Plan B. Verbinden Sie sich mit JMX. Die VM-Zusammenfassung MBean hat die Argumente.

%Vor%

Nachdem all dies gesagt wurde, solltet ihr System.getProperty aufrufen und mit der Notwendigkeit leben, -D zu verwenden, um Parameter von der Außenwelt in eure Höhle zu geben.

    
bmargulies 22.01.2011 02:34
quelle
-1

Sie könnten einen Wrapper schreiben, um den CLI zu übernehmen und ihn neu zu formatieren, um -DPROP = VAL

zu verwenden %Vor%

Natürlich können Sie den Benutzern immer sagen, dass sie ein bash / batch Skript mit den richtigen -DA = True Type Argumenten

aufrufen müssen     
KitsuneYMG 22.01.2011 03:15
quelle

Tags und Links