2016-04-07 3 views
1

Ich verwende Groovy CliBuilder, um Befehlszeilenargumente zu analysieren und eine Verwendungsnachricht zu generieren, wenn die Befehlszeile falsch ist. Als Teil der Verwendungsnachricht möchte ich den tatsächlichen Namen des verwendeten Programms drucken können (da sich die Versionsnummer bei jedem Build ändert). Wie kann ich den Namen des Programms erhalten?Wie kann ich den Namen des laufenden Befehls (oder JAR oder Skript) aus Groovys CliBuilder abrufen?

Ich würde gerne in der Lage sein, etwas zu tun:

def cli = new CliBuilder(usage: "java -jar ${this.name} -db DBCONNECTIONFILE") 

aber alles, was ich scheinen die Argumente in der Lage sein zu erhalten, die nach dem Programmnamen kommen.

Vielleicht kann ich es von der Pom bekommen, aber ich verstehe nicht, wie ich das aus der Pom-Datei greifen kann, kurz vor dem Einlesen und Parsing der Pom.

+0

IMHO verwenden, könnten Sie den Titel verbessern, um die Antwort zu entsprechen. – Jayan

Antwort

1

Klingt so, als ob Sie den Namen des aktuell ausgeführten Jars erhalten möchten. Dies ist in How to get the path of a running JAR file? bedeckt

new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); 

dann .getName() aufrufen. Wenn Sie nur den Pfad möchten, dann können Sie

MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath() 
+0

tanx Riley: D - sopheta hat dich gerade gefragt. – GLaDOS

Verwandte Themen