2012-06-04 2 views
1

Possible en double:
Java command line arguments. Using * as an argument for multiplication'*' comme changements de paramètres ".classpath, .project, .settings, bin, src,"

Je voulais juste écrire simple calculatrice. Si j'entre 2 * 3 comme paramètres du tableau ressemblera à ceci après:

[2, .classpath, .project, .settings, bin, src, 3]

Cela se produit pour tous nos Eclipse installe dans la société "Version: Indigo Service Release 2 Numéro de build: 20120216-1857"

Un de mes amis n'a pas ce problème, alors quelqu'un connaît-il la racine de ce problème?

salutations

Nico

+1

On dirait que le shell de commande (comme bash) étend vos arguments aux noms de fichiers. Ce serait un problème en dehors de votre code ou Java. Comment gérez-vous votre programme? – Thilo

+0

C'est vrai, je n'ai pas trouvé ce poste, je suis vraiment désolé. –

Répondre

3

Le paramètre * sera remplacé par l'interpréteur de commandes avec la liste des fichiers dans le répertoire de travail courant. Cela se produit généralement sur les plateformes Linux/Unix, mais pas (nécessairement) sur Windows. Est-ce que votre ami utilise une machine Windows? En d'autres termes, cela n'a rien à voir avec Java, mais avec l'interpréteur de commandes shell qui interprète votre ligne de commande avant d'exécuter java. Pour l'éviter, vous devez simplement citer des paramètres sensibles, tels que java MyApp 2 '*' 3.

+0

@Thilo, utilisez la citation. ''*'' –

+0

@Thilo, voir ma mise à jour. –

+0

Merci beaucoup pour la réponse rapide et utile. Il utilise Mac OS et nous utilisons Windows 7 dans l'entreprise. –

0

Vous passez les paramètres sur la ligne de commande, où '*' est en réalité le caractère générique; il correspond à tous les fichiers du répertoire courant (qui se trouvent être .classpath, .project, .settings, bin, src.)

0

Si vous utilisez Unix, ceci est la conséquence naturelle de l'expansion de la ligne de commande. Utilisez \* ou "*". Si vous êtes sur Windows, cela n'arrive pas.