Wie vermeide ich eine Glob-Erweiterung, wenn ich eine Java-App in eclipse starte?

Es tritt ein spezielles Verhalten der Eclipse-Ausführungskonfiguration auf, und es handelt sich anscheinend nur um ein Windows-Problem. Angenommen, ich habe eine Java-App, die die folgenden Befehlszeilenargumente ausgibt:

public class WildCard {
    public static void main(String[] args) {
        for (String arg: args) {
            System.out.println(arg);
        }
    }
}

Wenn ich Argumente mit einem Platzhalter versehen, der von der Shell erweitert werden kann, wird er von der Shell erweitert und an das Java-Programm übergeben. Das ist keine Überraschung. Also, wenn ich an der Eingabeaufforderung

java WildCard test/*

das Programm druckt

test/foo.txt
test/bar.txt

where foo.txt und bar.txt sind Dateien im Verzeichnis "test".

Shell-Erweiterungen können verhindert werden, wenn ich das Platzhalterargument in Anführungszeichen setze. einfache Anführungszeichen unter * nix und doppelte Anführungszeichen unter Windows. Also für Windows, wenn ich Folgendes an der Eingabeaufforderung mache:

java WildCard "test/*"

das Programm druckt jetzt

test/*

(keine Erweiterung).

Was ich jedoch finde ist, dass das Zitieren im Eclipse Run Launcher keine Wirkung zu haben scheint und das Argument immer noch erweitert wird. Wenn ich

"test/*"

in der Programmargument Sektion im Eclipse Run Launcher, und starte die obige Klasse, ich bekomme immer noch

test/foo.txt
test/bar.txt

Mit anderen Worten, die doppelten Anführungszeichen scheinen verloren zu sein, wenn das Programm tatsächlich ausgeführt wird. Dies scheint nur unter Windows zu passieren.

Gibt es eine Möglichkeit, die Glob-Erweiterung mit dem Eclipse Run Launcher unter Windows zu verhindern?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage