Java-Argumente, die mit gradle run ausgeführt werden sollen, können mit --args angegeben werden (seit Gradle 4.9).

Überblick

Beschreibungsbeispiel

Ein Beispiel für die Angabe von drei Argumenten für aaa bbb ccc.

$ gradle run --args="aaa bbb ccc"

Offizielle Informationen

The Application Plugin

Since Gradle 4.9, the command line arguments can be passed with --args. For example, if you want to launch the application with command line arguments foo --bar, you can use gradle run --args="foo --bar" (see JavaExec.setArgsString(java.lang.String).

Funktionsprüfung

Bestätigt für die Arbeit mit OpenJDK 11.0.2 und Gradle 5.6.2.

Bereiten Sie build.gradle und App.java für die Ausführung vor.

$ tree
.
├── build.gradle
└── src
    └── main
        └── java
            └── com
                └── example
                    └── App.java

build.gradle-Datei.

build.gradle


plugins {
  id 'java'
  id 'application'
}

repositories {
  mavenCentral()
  jcenter()
}

application {
  mainClassName = 'com.example.App'
}

App.java-Datei.

package com.example;

public class App {
  public static void main(String[] args) {
    System.out.println("args.length=" + args.length);
    for(String arg: args) {
      System.out.println(arg);
    }
  }
}

Führen Sie gradle run ohne Argumente aus.

$ gradle run

> Task :run
args.length=0

BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed

Führen Sie gradle run mit Argumenten aus.

$ gradle run --args="aaa bbb ccc"

> Task :run
args.length=3
aaa
bbb
ccc

BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date

Problemumgehungen vor Gradle 4.9

Fügen Sie den Prozess hinzu, wenn die Ausführungsaufgabe zu build.gradle ausgeführt wird.

build.gradle


run {
  //Übergeben Sie die Eigenschaft args an args der ausgeführten Task, falls vorhanden
  if (project.hasProperty('args')) {
    //Teilen und übergeben Sie mit Leerzeichen halber Breite
    args(project.args.split('\\s+'))
  }
}

Wenn Sie beim Ausführen von gradle run die Eigenschaft args angeben, wird sie als Argument an die Java-Anwendung übergeben.

$ gradle run -Pargs="aaa bbb ccc"

> Task :run
args.length=3
aaa
bbb
ccc

BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date

Referenzmaterial

Recommended Posts

Java-Argumente, die mit gradle run ausgeführt werden sollen, können mit --args angegeben werden (seit Gradle 4.9).
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Der [Java] char-Typ kann in den int-Typ umgewandelt werden
Nur der Stream der obersten Ebene kann mit Java Stream parallelisiert werden.
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Gibt an, ob Optionen aufgrund unterschiedlicher Java-Versionen verwendet werden können
Führen Sie Batch mit Docker-Compose mit Java-Batch aus
Java zum Spielen mit Function
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
Führen Sie Java VM mit Web Assembly aus
Erstellen eines Java-Projekts mit Gradle
Java mit Ramen lernen [Teil 1]
Wie man Ant in Gradle ausführt
Wagen Sie es, Kaggle mit Java herauszufordern (1)
Ich habe versucht, mit Java zu interagieren
Java soll ab heute dabei sein
Java, Arrays für Anfänger
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
[Java] Java soll in Ordnung sein, um Zeichenfolgen mit + zu verketten, also habe ich es überprüft