Comment exécuter une commande DOS à partir d'un code JAVA - Java - Programmation
Marsh Posté le 10-01-2006 à 10:53:42
Non c'est bon, ça marche ça j'avais fait une couille ailleurs.
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
Marsh Posté le 02-02-2006 à 19:09:31
AlatakLaTeX a écrit : try { |
trop bien la gestion de l'exception
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
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 :
|
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().
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 :
|
... le caractère '\' étant un caractère d'échappement ?...
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 :
|
Possible, c'est pour ça que j'ai indiqué que le code était à vérifier
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 |
j'avais pas vu !
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...
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
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
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 ?...
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...
?
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
Marsh Posté le 29-04-2006 à 19:25:46
ReplyMarsh 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
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.
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...
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.
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).
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
Marsh Posté le 04-05-2006 à 07:33:36
Citation : ca marche sans probleme |
Tu t'avances peut-être un peu.
Marsh Posté le 10-05-2006 à 21:48:14
non franchement pas de probleme... je lis le fichier texte ligne par ligne sans soucis
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
Marsh Posté le 10-05-2006 à 22:31:03
Oui oui, pas de soucis...
Un petit coup de LART pour se remettre les idées en places ? kradeg est chaud, là.
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