In Erweiterung der Antwort von @Arno Unkrig:
Unter Windows expandieren einige JVMs definitiv das "*"-Zeichen, und es ist nicht die Shell, die den Pfad expandiert. Sie können dies bestätigen, indem Sie ein kleines Java-Programm schreiben, das die Argumente ausgibt:
public class TestArgs {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("Arg " + i + ": " + args[i]);
}
}
}
Die gute Nachricht ist, dass es eine Abhilfe gibt! Sie können verwenden @filename
als Argument für JVM wie folgt:
java @args.txt
wobei args.txt
ist eine Textdatei, die die Argumente für jede Zeile enthält. Beispiel Inhalt:
TestArgs
*
Dies ist gleichbedeutend mit dem Aufruf von java
mit zwei Argumenten TestArgs
y *
. Das Wichtigste, *
wird nicht erweitert, wenn es mit der Option @filename
Methode. Ich konnte die Details finden unter diese Seite .