2010-10-27 4 views
13

J'essaie de lire un fichier de l'utilisateur, dans lequel chaque ligne est une commande cmd.exe, et exécutez-la (il est permis de supposer que les commandes sont légales), mais quand je donne un commande comme echo hi, je reçois une erreur d'exception d'exécution:Exécution de commandes cmd.exe à partir de Java

Exception in thread "main" java.io.IOException: Cannot run program "echo": CreateProcess error=2, The system cannot find the file specified

Je suis en train d'exécuter les commandes comme celle-ci:

Runtime.getRuntime().exec(command); 

command = "echo hi". Cela fonctionne cependant pour les commandes comme regedit, donc il semble que le runtime que je reçois ressemble à la fenêtre "run" et non à cmd. Est-il possible d'exécuter ces commandes?

Répondre

24

C'est parce que echo n'est pas une commande exécutable externe (c'est-à-dire, il n'y a pas de fichier echo.exe sur votre disque dur, à moins que vous ne l'ayez mis vous-même). C'est une commande interne de la coquille.

Vous constaterez probablement que vous devez exécuter quelque chose comme:

cmd.exe /c echo hello 
Questions connexes