Passer des commandes au shell avec java

wassimwawa Messages postés 1 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 décembre 2002 - 24 déc. 2002 à 13:04
Choumi1980 Messages postés 32 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 23 juin 2007 - 3 nov. 2004 à 09:31
comment passer des commendes avec java au dos sans ouvrir l'invité de commandes et inversement comment recupérer les resultats dans un String(messages ecrits sur le console )
exp:
commande: "dir c:"
resultat :
"
20/12/2002 09:06 2 713 calculatrice.htm
10/12/2002 16:31 <DIR> communication
27/11/2002 10:45 602 Copie de tp2.m
24/10/2002 23:26 795 485 devphp1300.exe"

4 réponses

JHelp Messages postés 261 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 6 octobre 2005 11
24 déc. 2002 à 14:00
Tu as la méthode exec de la classe RunTime.
Elle te crée un Process, c'est le processus d'excution.
De ce processus, il te faut ensuite recuperer la sortie vers un flux de donnée, que tu peux ensuite exploiter.

Pour ton exemple tu peux faire :

import java.io.*;

//Création d'une procedure de commandes externes
RunTime runTime=RunTime.getRunTime();
//Création du processus
Process process=runTime.exec("dir c:\");
//Récupération du flux de sortie
InputStream fluxSortie=process.getInputStream();

Voilà. Mais c'est une solution à éviter à tout prix, car non portable, essaie toujours de voir, s'il n'exites pas une version Java de ce que tu désires faire.

Par exemple si tu désires seulement la liste des fichiers contenues dans un répertoire, regarde plutôt la classe java.io.File.
Tu as la méthode listFiles() qui te donne le contenu du répertoire:
Pour ton exemple :

import java.io.*;

File repertoire=new File("c:\");
File[] contenu=repertoire.listFiles();

JHelp
0
maitrecesar Messages postés 11 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 3 août 2005
27 avril 2003 à 14:30
Salut

est ce que tu peut m'envoier un simple exemple qui fonctionne, car j'ai a peut pres le meme probleme, c'est que
j'ai toujour une exception lors de l'execution de la commande

Process process=runTime.exec("dir c:\");

merci d'avance
maitrecesar@yahoo.fr
0
JHelp Messages postés 261 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 6 octobre 2005 11
28 avril 2003 à 08:03
Ca dépand de ton windows, sous 98, il faut mettre devant dir cmd (si mes souvenirs sont bon), mais j'insiste à ne pas utiliser cette méthode, car déjà pas compatible d'un windows à l'autre.

JHelp
0
Choumi1980 Messages postés 32 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 23 juin 2007
3 nov. 2004 à 09:31
:big)

Salut les amis,

juste une précision car il y a une erreur dans le code.

RunTime est une interface hors dans le code il faut utiliser la class Runtime avec un t minuscule. "java.lang.Runtime"

Voilà a++
0
Rejoignez-nous