Comment exécuter une commande DOS à partir d'un code JAVA

Comment exécuter une commande DOS à partir d'un code JAVA - Java - Programmation

Marsh Posté le 10-01-2006 à 09:50:25    

Tout est dans le titre, quelqu'un saurait-il comment faire? Pour l'instant je voudrais simplement ouvrir la conosle DOS; j'essaie un truc du style:
 
try {  
Runtime.getRuntime().exec("cmd.exe" );  
} catch (Exception e) { }
 
Mais ça marche pas...lapo compri!
 
Merci de votre aide
 

Reply

Marsh Posté le 10-01-2006 à 09:50:25   

Reply

Marsh Posté le 10-01-2006 à 10:53:42    

Non c'est bon, ça marche ça j'avais fait une couille ailleurs.

Reply

Marsh Posté le 02-02-2006 à 15:22:21    

Tu peux dire comment t as fait stp?J'ai fait comment tu as mis ci-dessus et ca marche pas


Message édité par blueberry76 le 02-02-2006 à 15:22:34
Reply

Marsh Posté le 02-02-2006 à 19:09:31    

AlatakLaTeX a écrit :

try {  
Runtime.getRuntime().exec("cmd.exe" );  
} catch (Exception e) { }


 
trop bien la gestion de l'exception :D


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 26-04-2006 à 22:39:57    

Alu !
J'ai le meme probleme. Je suis sur Win 98, je sais pas si ca gene. J'ai fais les commandes exec(String commande) ds un environnement UNIX, et il n'y a aucun probleme... en revanche, sous Win, j'arrive meme pas à faire un COPY !!!
Voila comment je fais :
Process proc;
Runtime r = null;
proc = r.getRuntime.exec("COPY d:\dos\fichier.txt d:\dos2);
ca nemarche pas : je tombe dans une Exception IO.
Enfin, savez vous comment faire par exemple afficher dans un type List le resultat d'une commande dir ?
D'avance merci !
Flavio_Dev

Reply

Marsh Posté le 26-04-2006 à 23:12:57    

up

Reply

Marsh Posté le 26-04-2006 à 23:28:09    

La commande copy s'exécute dans une console DOS, donc il te faut ouvrir la console DOS et ensuite appeler la commande copy (code à vérifier).

Code :
  1. try
  2. Runtime.getRuntime().exec("cmd.exe /k copy d:\dos\fichier.txt d:\dos2" ); 
  3. } catch (Exception e) { }


Voir ici pour les paramètres de cmd :
http://www.microsoft.com/resources [...] x?mfr=true
 
Et comme suggéré par trevor il faut mieux traiter les exceptions qui peuvent être levées par exec().


Message édité par charly007 le 26-04-2006 à 23:32:03
Reply

Marsh Posté le 27-04-2006 à 10:23:06    

Arretez-moi si je me trompe, est-ce qu'il ne faudrait pas plutôt écrire :

Code :
  1. try
  2. Runtime.getRuntime().exec("cmd.exe /k copy d:\\dos\\fichier.txt d:\\dos2" ); 
  3. } catch (Exception e) { }


... le caractère '\' étant un caractère d'échappement ?...

Message cité 1 fois
Message édité par post_it le 27-04-2006 à 10:23:48
Reply

Marsh Posté le 27-04-2006 à 11:59:45    

post_it a écrit :

Arretez-moi si je me trompe, est-ce qu'il ne faudrait pas plutôt écrire :

Code :
  1. try
  2. Runtime.getRuntime().exec("cmd.exe /k copy d:\\dos\\fichier.txt d:\\dos2" ); 
  3. } catch (Exception e) { }


... le caractère '\' étant un caractère d'échappement ?...


Possible, c'est pour ça que j'ai indiqué que le code était à vérifier :D

Reply

Marsh Posté le 27-04-2006 à 16:35:24    

charly007 a écrit :

Possible, c'est pour ça que j'ai indiqué que le code était à vérifier :D


j'avais pas vu !   :)

Reply

Marsh Posté le 27-04-2006 à 16:35:24   

Reply

Marsh Posté le 27-04-2006 à 19:00:34    

Oki!! Je vous test ca tt de suite et je vous dis ;)
sauf que sur mon win 98, c'est pas CMD.exe, mais command.com...
et je me dis : faire une demande d'ouverture d'un interpretteur de commande... à l'aide d'une commande... enfin... on tourne en rond non ?
Bon,je vais essayer...


Message édité par flavio_dev le 27-04-2006 à 19:22:24
Reply

Marsh Posté le 27-04-2006 à 20:10:27    

ouai !!! ca marche !!! ;)
Donc en fait, ce que j'ai fait, c'est Runtime.getRuntime().exec("command.cmd /c copy d:\\dos\\fichier.txt d:\\dos2" );  
J'ai mis /c car d'apres la doc microsoft (merci charly007 pour le lien...), ca s'arrete apres l'execution du COPY. Alors qu'avec /k, c'est galere, ca continue de tourner... ca plante mon PC... (et oui, vive le reboot...).
Merci à vous;)

Reply

Marsh Posté le 28-04-2006 à 09:53:16    

;)


Message édité par charly007 le 28-04-2006 à 09:53:26
Reply

Marsh Posté le 28-04-2006 à 19:51:02    

Si vous etes encor chaud pour un ptit probleme encore... j'en ai un nouveau...
Tout simple.. mais bon...
Je fais le dir d'un dossier avec java (...exec("command.cmd /c dir /b d:\ > tt.txt" );
mon fichier txt est donc comme suit :
dossier1
dossier2
fichier1
fichier2
...
un element à chaque ligne ;)
comment récupérer ligne par ligne, en lisant le fichier txt les String (pa exemple, je recuper en type String "dossier1" )? Il faut aussi que je connaisse combien y a de lignes, donc de fichier/dossier à recupérer (dans le cas ou la lecture du fichier txt se fait line par ligne, je suppose qu'on utilise un for..)?
MERCI d'avance ;)

Reply

Marsh Posté le 28-04-2006 à 21:22:34    

Tu es réellement obligé d'utiliser une commande dos pour lister le contenu du répertoire ?...

Reply

Marsh Posté le 29-04-2006 à 13:45:57    

J'en sais rien... c'est juste que je trouvais la manipulation sympa... je fais ca pour ma connaissance perso... et aussi parce que cela m'aiderait bien dans mon stage...:)
Bref, tu ne saurais pas comment lire avec Java un fichier txt ? Ou alors, si tu as une autre proposition pour recupérer dans un environnement Java le resultat d'un listage de contenu de rep...
?

Reply

Marsh Posté le 29-04-2006 à 18:53:21    

J'ai lu un peu rapidement ce que tu veux faire et je me permets de te montrer certaines classes que tu pourrais peut-être utiliser (en plus de l'api J2SE) :
http://jakarta.apache.org/commons/io/
dont, entre autres :
http://jakarta.apache.org/commons/ [...] index.html


Message édité par charly007 le 29-04-2006 à 18:53:39
Reply

Marsh Posté le 29-04-2006 à 19:25:46    

euh, java.io.File hein [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-04-2006 à 21:30:16    

je pense avoir trouvé la solution ;)
En tout cas, ca marche chez moi :
http://www.infres.enst.fr/~charon/ [...] Texte.html

Reply

Marsh Posté le 29-04-2006 à 23:27:09    

Laisse tomber l'exécution de process depuis Java. Ca pue un max.
 
N.B. Les exemples donnés par le lien de flavio ne sont pas corrects.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 30-04-2006 à 16:36:57    

Pas correct soit, mais avec quelque modifications, ca marche sans probleme... et oui l'exec de process depuis Java, c'est pas simple...

Reply

Marsh Posté le 30-04-2006 à 21:50:32    

flavio_dev a écrit :

Pas correct soit, mais avec quelque modifications ca marche sans probleme...


Faut voir de quoi tu parles, cowboy. [:djswad]

flavio_dev a écrit :

et oui l'exec de process depuis Java, c'est pas simple...


Ca n'a rien de fort compliqué; c'est juste que sapu (== comportements erratiques et mauvaises surprises à prévoir; API sommaire).    [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-05-2006 à 05:43:27    

attention pour ceux qui execute leurs applications en utilisant le path java  le runtime.getruntime().exec("cmd " ) // ou command.com ca marche sans probleme et cela va leurs afficher le terminal dos mais pour ceux qui utilise le javaw comme path l'execution aura lieu mais sans affichage du terminal cad execution des commandes desirées  mais sans visualisation de la fenetre dos


Message édité par modigliani le 04-05-2006 à 05:44:44
Reply

Marsh Posté le 04-05-2006 à 07:33:36    

Citation :

ca marche sans probleme


Tu t'avances peut-être un peu.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 10-05-2006 à 21:48:14    

non franchement pas de probleme... je lis le fichier texte ligne par ligne sans soucis :)

Reply

Marsh Posté le 10-05-2006 à 21:51:12    

Je suis ton chef et tu me sors ça, je te désanusse à la pelle à clous :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 10-05-2006 à 22:31:03    

Oui oui, pas de soucis... [:mlc]
 
Un petit coup de LART pour se remettre les idées en places ? kradeg est chaud, là. [:itm]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed