WaitFor()
Fermé
soyen
-
24 avril 2013 à 20:35
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 25 avril 2013 à 18:53
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 25 avril 2013 à 18:53
3 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
24 avril 2013 à 20:54
24 avril 2013 à 20:54
Il n'y a aucun intérêt de faire un exec sur cmd.exe pour lancer un .bat
Tu peux directement faire l'exec sur le fichier .bat
Remarque :
Selon ce qu'il y a dedans tu peux aussi réécrire les instructions de ton .bat en Java, parce que ça ne sert à rien de faire un programme Java si c'est pour faire du batch !
Tu peux directement faire l'exec sur le fichier .bat
Runtime.getRuntime().exec("E:/fichier.bat");
Remarque :
Selon ce qu'il y a dedans tu peux aussi réécrire les instructions de ton .bat en Java, parce que ça ne sert à rien de faire un programme Java si c'est pour faire du batch !
Merci, mais ça ne fonctionne toujours pas...
Runtime.getRuntime().exec("E:/fichier.bat").waitFor();
génère une exception que je n'arrive toujours pas à gérer
merci encore pour votre aide
Runtime.getRuntime().exec("E:/fichier.bat").waitFor();
génère une exception que je n'arrive toujours pas à gérer
merci encore pour votre aide
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
25 avril 2013 à 18:53
25 avril 2013 à 18:53
"génère une exception que je n'arrive toujours pas à gérer"
Il faudrait être plus précis, comment on fait pour deviner le problème ?
Moi je viens de vérifier la syntaxe et avec un petit fichier .bat tout simple ça fonctionne, ton problème vient donc soit de ton fichier .bat soit du reste de ton code.
Voici un exemple complet :
Dans le dossier "C:\" j'ai un fichier "test1.txt" que je veux renommer "test2.txt", je me sers donc d'un fichier "C:\test.bat" qui utilise la commande "ren test1.txt test2.txt" après s'être positionné dans le lecteur C: et le dossier C:\
Contenu du fichier C:\test.bat :
Contenu du fichier Test.java :
Remarque : le positionnement sur le disque C: et le répertoire C:\ peut se faire directement avec le code Java.
Contenu du fichier C:\test.bat :
Contenu du fichier Test.java :
Remarque : renommer le fichier aussi peut se faire directement en Java, pas besoin d'un fichier .bat. D'ailleurs dans la plupart des cas on peux se passer d'un fichier .bat parce que Java permet de faire à peu près tout !
Bref, la commande exec fonctionne sur les fichiers .bat, soit plus précis concernant ton exception pour qu'on t'aide au mieux...
Il faudrait être plus précis, comment on fait pour deviner le problème ?
Moi je viens de vérifier la syntaxe et avec un petit fichier .bat tout simple ça fonctionne, ton problème vient donc soit de ton fichier .bat soit du reste de ton code.
Voici un exemple complet :
Dans le dossier "C:\" j'ai un fichier "test1.txt" que je veux renommer "test2.txt", je me sers donc d'un fichier "C:\test.bat" qui utilise la commande "ren test1.txt test2.txt" après s'être positionné dans le lecteur C: et le dossier C:\
Contenu du fichier C:\test.bat :
C: cd C:\ ren test1.txt test2.txt
Contenu du fichier Test.java :
public class Test { public static void main(String[] args) { try { Runtime.getRuntime().exec("C:/test.bat").waitFor(); } catch (Exception e) { e.printStackTrace(); } } }
Remarque : le positionnement sur le disque C: et le répertoire C:\ peut se faire directement avec le code Java.
Contenu du fichier C:\test.bat :
ren test1.txt test2.txt
Contenu du fichier Test.java :
import java.io.File; public class Test { public static void main(String[] args) { try { Runtime.getRuntime().exec("C:/test.bat",null,new File("C:/").waitFor(); } catch (Exception e) { e.printStackTrace(); } } }
Remarque : renommer le fichier aussi peut se faire directement en Java, pas besoin d'un fichier .bat. D'ailleurs dans la plupart des cas on peux se passer d'un fichier .bat parce que Java permet de faire à peu près tout !
import java.io.File; public class Test { public static void main(String[] args) { new File("C:/test1.txt").renameTo(new File("C:/test2.txt")); } }
Bref, la commande exec fonctionne sur les fichiers .bat, soit plus précis concernant ton exception pour qu'on t'aide au mieux...