Je rencontre un comportement particulier de la configuration de l'exécution d'Eclipse, et cela semble être un problème uniquement lié à Windows. Supposons que j'ai une application Java qui imprime les arguments de ligne de commande, comme ce qui suit:comment éviter l'expansion glob lors de l'exécution de l'application Java en eclipse
public class WildCard {
public static void main(String[] args) {
for (String arg: args) {
System.out.println(arg);
}
}
}
Si je donne l'argument avec une carte sauvage qui peut être étendu par la coquille, la coquille se développer et donner à le programme Java. Ce n'est pas une surprise. Donc, si je fais sur l'invite de commande
java WildCard test/*
le programme imprimera
test/foo.txt
test/bar.txt
où foo.txt et bar.txt sont des fichiers dans le répertoire « test ».
Les expansions de shell peuvent être évitées si j'entoure l'argument générique entre guillemets; guillemets simples sur * nix, et guillemets doubles sur Windows. Donc, pour Windows, si je fais ce qui suit à l'invite de commande:
java WildCard "test/*"
le programme va maintenant imprimer
test/*
(pas d'expansion). Cependant, ce que je trouve est que la citation dans le lanceur d'exécution Eclipse semble n'avoir aucun effet, et l'argument est encore développé. Si je mets
"test/*"
dans la section argument du programme dans le lanceur d'exécution Eclipse et exécuter la classe ci-dessus, je reçois toujours
test/foo.txt
test/bar.txt
En d'autres termes, les guillemets doubles semblent être perdus lorsque la programme fonctionne réellement. Cela semble se produire uniquement avec Windows.
Existe-t-il un moyen d'empêcher l'expansion glob avec le lanceur d'exécution Eclipse sous Windows?
Je suis enclin à croire que c'est un bug avec eclipse, mais je voulais voir s'il y avait une solution de contournement viable au problème. – sjlee
Ma suggestion d'échapper le caractère générique avec des barres obliques inverses ne fonctionne pas vraiment. Cela fonctionne ** dans le cas de test que j'ai utilisé (et je ne sais toujours pas pourquoi) mais pas dans d'autres cas. Je supprime ma réponse car elle ne résout pas réellement le problème. – Grodriguez
J'ai trouvé un bug d'éclipse existant sur ce ... http: // goo.gl/eM6e – sjlee