2010-10-05 7 views
10

Si sta verificando un comportamento particolare della configurazione di esecuzione di Eclipse e sembra che si tratti di un problema solo per Windows. Supponiamo che io sono un'applicazione Java che stampa gli argomenti della riga di comando, come il seguente:come evitare l'espansione di glob quando si esegue l'app Java in eclissi

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

Se fornisco argomento con una wild card che può essere ampliata dalla shell, la shell espanderla e dare a il programma Java. Non è una sorpresa. Quindi, se faccio sul prompt dei comandi

java WildCard test/* 

il programma stamperà

test/foo.txt 
test/bar.txt 

dove foo.txt e bar.txt sono file nel "test" directory.

Le espansioni di shell possono essere prevenute se si circonda l'argomento con caratteri jolly tra virgolette; virgolette singole su * nix e virgolette doppie su Windows. Quindi per Windows, se faccio il seguente sul prompt dei comandi:

java WildCard "test/*" 

il programma stamperà

test/* 

(nessuna espansione).

Tuttavia, quello che trovo è che la citazione nel lanciatore di Eclipse sembra non avere alcun effetto, e l'argomento è ancora espanso. Se metto

"test/*" 

nella sezione di discussione del programma nel periodo di lancio di Eclipse, ed eseguire la classe di cui sopra, ho ancora

test/foo.txt 
test/bar.txt 

In altre parole, le virgolette sembrano essere persi quando il il programma funziona davvero. Questo sembra accadere solo con Windows.

C'è un modo per impedire l'espansione di glob con Eclipse lancia l'avvio su Windows?

+0

Sono propenso a credere che si tratti di un bug di eclissi, ma volevo vedere se c'è una valida soluzione al problema. – sjlee

+0

Il mio suggerimento di sfuggire al carattere jolly con barre retroverse non funziona davvero. Funziona ** nel caso di test che ho usato (e non so ancora perché) ma non in altri casi. Sto cancellando la mia risposta poiché in realtà non risolve il problema. – Grodriguez

+4

Ho trovato un bug eclissi esistente su questo ... http: // goo.gl/eM6e – sjlee

risposta

0

Il problema sembra abbastanza cablata:

*.txt 
foo.* 

NON sarà ampliato, ma

* 
*.* 
"*" 
"*.*" 
\"*\" 
\"*.*\" 

sarà ampliato.

Sembra che solo "tutti i file" siano espansi, ma tutte le altre stringhe (incluso *) rimarranno invariate.

Sono allo stesso problema e io uso XP ed Eclipse 3.5.2

0

Il modello (.*) non sarà ampliato da Eclipse, e tuttora lavora come regex.

Problemi correlati