2010-07-02 7 views
1

quelqu'un peut trouver ce qui ne va pas avec ce code:Problème avec processus d'exécution d'exécution

Runtime rt = Runtime.getRuntime(); 
Process pr; 
File myFolder = new File("C:\\Temp"); 
pr = rt.exec("myExec.bat", null, myFolder); 
pr.waitFor(); 
pr.destroy(); 

Quand je lance ce code, je me exception suivante (tout fichier et dossier utilisé existent comme spécifié):

java.io.IOException: Cannot run program "myExec.bat" (in directory "C:\Temp"): CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at java.lang.Runtime.exec(Runtime.java:593) 
    at java.lang.Runtime.exec(Runtime.java:431) 
    at com.radml.radmlp.main(Test.java:10) 

Répondre

4

rt.exec attend un fichier avec aucune information de chemin d'accès dans le répertoire utilisateur et non dans le répertoire que vous spécifiez pour utiliser comme répertoire de travail. L'utiliser de cette façon

Runtime rt = Runtime.getRuntime(); 
    Process pr; 
    File myFolder = new File("C:\\Temp"); 
    pr = rt.exec(new File(myFolder, "myExec.bat").getAbsolutePath(), null, myFolder); 
    pr.waitFor(); 
    pr.destroy(); 

devrait fonctionner tant que votre fichier c: \ Temp \ myExec.bat existe.

Greetz, Ghad

+0

Vous avez raison Ghad, je suis votre point et cela résout mon problème ci-dessus, mais maintenant je fais face à un autre problème. J'essaye d'exécuter le dossier de python par le java et obtenant l'erreur suivante: "java.io.IOException: Impossible d'exécuter le programme" C: \ Temp \ create-application.py ": erreur CreateProcess = 193,% 1 n'est pas une application Win32 valide ". Python est installé sur ma machine et je peux exécuter tout ???. Py sur l'invite de commande – WSK

+0

Utilisez "cmd/c C: \ Temp \ create-application.py" pour le premier argument rt.exec. Cela devrait fonctionner, sinon, essayez "start C: \ Temp \ create-application.py". Greetz GHad – GHad

1

Avez-vous veillé à ce que votre fichier bat se trouve dans "C:\Temp\myExec.bat"?

(Juste une supposition, mais assurez-vous que le fichier n'est pas appeléC:\Temp\myExec.bat.txt)

+0

Oui fichiers et dossiers sont corrects et je peux l'exécuter à partir d'invite de commande – WSK