Escape-Platzhalter-Verarbeitung in Java Classpath

Der nächste Code druckt aufgrund der Platzhalterverarbeitung die Attribute jeder Datei im aktuellen Verzeichnis.

c:\work>attrib *

Ich muss die Platzhalterverarbeitung in meinem Skript deaktivieren. Fluchtsymbole funktionieren nicht:

c:\work>attrib "*"
c:\work>attrib ^*

Beide geben dir das gleiche.

Ich muss die Platzhalterverarbeitung deaktivieren, um meine Anwendung zu starten, die Platzhalter als Argument akzeptiert.

A.java

import java.util.Arrays;

public class A {

    public static void main(String[] args) {
        System.out.println(Arrays.deepToString(args));
    }
}

CMD

C:\work\temp>start.bat

C:\work\temp>java -cp playground.jar A *
[activation.jar, file.txt, playground.jar, playground.jar.bak, start.bat, test.bat]

C:\work\temp>start.bat

C:\work\temp>java -cp playground.jar A "*"
[activation.jar, file.txt, playground.jar, playground.jar.bak, start.bat, test.bat]

C:\work\temp>start.bat

C:\work\temp>java -cp playground.jar A "* foo? *bar*"
[* foo? *bar*]

Problemumgehung gefunden. "*;" - Nicht falscher Ordnername, sondern gültiger Klassenpfad:

java -cp "*;" A

Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage