2016-04-05 2 views
0

Ich möchte alle Parameter, die an Aufruf, einschließlich JVM-Parameter übergeben werden, ohne zu wissen, welche genau zur Verfügung gestellt wurden. Ist das möglich?SBT: alle übergebenen Argumente erhalten

Etwas wie folgt aus:

sbt -Dsbt.ivy.home=/tmp/.ivy2 -Divy.home=/tmp/.ivy2 -J-XX:+CMSClassUnloadingEnabled 

So würde Ich mag XX:+CMSClassUnloadingEnabled die die Parameter wurden übergeben, in diesem Fall sind sie Systemeigenschaften sbt.ivy.home und ivy.home und JVM-Eigenschaft zu sehen. Ich brauche natürlich auch die entsprechenden Werte.

Es wäre genug, wenn ich das alles nur als eine einzige Saite bekommen könnte, vielleicht ist es realistischer?

Antwort

0

Hier ist eine aktualisierte Beispielklasse, die alle Umgebungsvariablen und die zusätzlichen JVM Argumente ausdrucken können:

Import java.util.Scanner; Import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; Import java.util. *;

public class VMArgs{ 
    public static void main(String... args){ 
     Properties p = System.getProperties(); 
     p.list(System.out); 

     RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); 
     List<String> arguments = runtimeMxBean.getInputArguments(); 
     System.out.println ("------------------arguments-----------------------------"); 
     System.out.println(arguments); 
    } 
} 

In Ihrem Kommentar, erwähnen Sie: -J-XX:+CMSClassUnloadingEnabled. Ich denke, das ist ein Tippfehler, das -J ist ungültig. Das Argument sollte -XX:+CMSClassUnloadingEnabled sein.

Wenn ich das obige Programm mit dem -Xmx256m -XX:+CMSClassUnloadingEnabled JVM arg ausführen, wird der Ausgang (Nichtbeachtung der Systemeigenschaften):

------------------arguments------------------- 
[-Xmx256m, -XX:+CMSClassUnloadingEnabled] 

, was zeigt, dass es funktioniert Erfassung und Ausgabe der JVM args wie erwartet.

+0

Nein, das '-J-XX: + CMSClassUnloadingEnabled' Thing ist dort nicht aufgeführt. – Haspemulator

+0

Ich habe die Antwort mit einem zusätzlichen Code-Snippet zum Extrahieren von jvm-Optionen aktualisiert. – pczeus

+0

@Haspemulator Überprüfen Sie die Antwort und Ihre Eingabeargumente. Es funktioniert für mich. – pczeus