Passer des commandes au shell avec java

Signaler
Messages postés
1
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
24 décembre 2002
-
Messages postés
32
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
23 juin 2007
-
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

Messages postés
261
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
6 octobre 2005
11
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
Messages postés
11
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
3 août 2005

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
Messages postés
261
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
6 octobre 2005
11
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
Messages postés
32
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
23 juin 2007

: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++