Ich habe folgendes Problem. Ich möchte mvn
für eine Main.java
Datei von der Kommandozeile aus ausführen . Main.java
akzeptiert einen Parameter. Wie mache ich das über die Kommandozeile?
Ich habe versucht, ein Beispiel zu finden, war aber nicht erfolgreich. Könnte mir jemand helfen, indem er mir ein Beispiel dafür gibt?
Ich habe hier gesucht , aber nicht ganz verstanden, was ich tun soll.
Auch , wie führe ich diesen Befehl aus einem anderen Ordner als dem Main.java Ordner?
Zum Beispiel Main.java
befindet sich das in my/java/program/Main.java
. Was soll ich eingeben
mvn exec:java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"
Antworten:
Sie könnten laufen :
mvn exec:exec -Dexec.args="arg1"
.Dadurch wird das Argument arg1 an Ihr Programm übergeben.
Sie sollten die Hauptklasse angeben, die vollständig qualifiziert ist, z. B. eine Main.java, die sich in einem Pakettest befindet
Durch die Verwendung von
-f
Parametern, wie beschrieben hier , können Sie es auch aus anderen Verzeichnissen laufen.Trennen Sie mehrere Argumente einfach wie in der Befehlszeile durch ein Leerzeichen.
Für Argumente, die durch a getrennt sind space, können Sie sie
'argument separated with space'
innerhalb der Anführungszeichen gruppieren .quelle
Darüber hinaus es läuft mit
mvn exec:java
, können Sie führen Sie es auch mitmvn exec:exec
quelle
-Dexec.args
:mvn exec:exec -Dexec.executable="java" -Dexec.args="-Xmx4g -classpath %classpath your.package.MainClass"
Das Hinzufügen eines Shell-Skripts
run.sh
macht es beispielsweise viel einfacher:Dann können Sie Folgendes ausführen:
quelle
$@
speichert alle Argumente in einer Liste von Zeichenfolgen in Anführungszeichen. Wenn Sie es direkt verwenden möchten, können Sie$*
- alle Argumente als einzelne Zeichenfolge verwenden. Hast du das versucht?