como evitar a expansão glob ao executar o aplicativo Java no eclipse
Estou tendo um comportamento peculiar da configuração de execução do Eclipse e parece ser um problema apenas do Windows. Suponha que eu tenha um aplicativo Java que imprima os argumentos da linha de comando, como o seguinte:
public class WildCard {
public static void main(String[] args) {
for (String arg: args) {
System.out.println(arg);
}
}
}
Se eu fornecer argumento com um curinga que pode ser expandido pelo shell, o shell o expandirá e o fornecerá ao programa Java. Isso não é surpresa. Então, se eu fizer no prompt de comando
java WildCard test/*
o programa imprimirá
test/foo.txt
test/bar.txt
onde foo.txt e bar.txt são arquivos no diretório "test".
Expansões de shell podem ser evitadas se eu colocar o argumento curinga entre aspas; aspas simples em * nix e aspas duplas no Windows. Portanto, para Windows, se eu fizer o seguinte no prompt de comando:
java WildCard "test/*"
o programa agora será impresso
test/*
(sem expansão).
No entanto, o que eu acho é que a citação no iniciador de execução do Eclipse parece não ter efeito e o argumento ainda é expandido. Se eu colocar
"test/*"
na seção de argumentos do programa no iniciador de execução do Eclipse e na classe acima, ainda recebo
test/foo.txt
test/bar.txt
Em outras palavras, as aspas duplas parecem se perder quando o programa realmente é executado. Isso parece acontecer apenas com o Windows.
Existe uma maneira de impedir a expansão glob com o iniciador de execução Eclipse no Windows?