Il est tout à fait possible que j'ai mal compris le but de l'argument File dir
dans Runtime.exec(String command, String[] envp, File dir): "Le répertoire de travail du nouveau sous-processus est spécifié par le répertoire Si dir est nul, le sous-processus hérite le répertoire de travail actuel du processus actuel. "Impossible de trouver le fichier en utilisant runtime.exec dir argument
Si je lance Runtime.exec("C:/mydir/myfile.bat");
le script est exécuté (même avec le répertoire de travail mal)
si je cours Runtime.exec("myfile.bat", null, new File("C:/mydir"));
j'obtenir l'erreur suivante:
java.io.IOException: Cannot run program "myfile.bat" (in directory "C:\mydir"): 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)
Je suppose que les ensembles d'arguments dir
le répertoire de travail pour le nouveau processus ainsi que la commande en cours d'exécution, mais peut-être qu'il fait juste le premier. Si tel est le cas, le message d'exception est assez trompeur.
Oui, je savais que ce serait la seule solution lors de l'écriture du poste ... merci pour le lien vers commons-exec - j'utilise à peu près tous les autres projets communs et ne savais pas à ce sujet !? – pstanton