comment executer une commande dos sous java?

comment executer une commande dos sous java? - Java - Programmation

Marsh Posté le 04-06-2006 à 01:47:31    

salut
 
voici un code que je viens de tapper,l'objectif c'est de pouvoir executer une commande dos par exemple: ping ou arp..etc et de recupere le resultat dans un fichier texte,mais lorsque je compile ce code il retourne rien,ou bien il enregistre le resultat ds qlq part que je l'ignore! :(
s'il vous plait,si vous avez une solution,n'hesitez pas a  m'aider
merci.:)
 [#7f0055 size=2]
import
[/#7f0055 size=2][size=1] java.io.*; [/size][#7f0055 size=2]
public
[/#7f0055 size=2][size=1] [/size][#7f0055 size=2]class[/#7f0055 size=2][size=1] ArpDos {
 
[/size][#7f0055 size=2]public[/#7f0055 size=2][size=1] [/size][#7f0055 size=2]static[/#7f0055 size=2][size=1] [/size][#7f0055 size=2]void[/#7f0055 size=2][size=1] main(String[] args) {  
String cmd;  
cmd = [/size][#2a00ff size=2]"cmd /c ping localhost"[/#2a00ff size=2][size=1];  
[/size][#7f0055 size=2]try[/#7f0055 size=2][size=1] {  
Runtime r = Runtime.getRuntime();  
Process p = r.exec(cmd);  
InputStream i_stream = p.getInputStream();  
InputStreamReader reader = [/size][#7f0055 size=2]new[/#7f0055 size=2][size=1] InputStreamReader(i_stream);  
InputStream out = [/size][#7f0055 size=2]new[/#7f0055 size=2][size=1] BufferedInputStream(p.getInputStream());  
String s =[/size][#2a00ff size=2]""[/#2a00ff size=2][size=1];  
BufferedReader bf_reader= [/size][#7f0055 size=2]new[/#7f0055 size=2][size=1] BufferedReader(reader);  
[/size][#7f0055 size=2]while[/#7f0055 size=2][size=1] ((bf_reader.readLine() != [/size][#7f0055 size=2]null[/#7f0055 size=2][size=1])) {  
s += bf_reader.readLine()+[/size][#2a00ff size=2]"\n"[/#2a00ff size=2][size=1];  
System.out.println(s);  
}  
p.waitFor();[/size][#3f7f5f size=2]//si l'application doit attendre a ce que ce process fini [/#3f7f5f size=2][size=1]
}[/size][#7f0055 size=2]catch[/#7f0055 size=2][size=1](Exception e) {  
System.out.println([/size][#2a00ff size=2]"erreur d'execution "[/#2a00ff size=2][size=1] + cmd + e.getMessage());  
}  
}  
}[/size]

Reply

Marsh Posté le 04-06-2006 à 01:47:31   

Reply

Marsh Posté le 04-06-2006 à 02:23:46    

excusez moi,je sais pas ce qui a bien pu se passer lorsque j'ai copier le code ici
ben le revoila
import java.io.*;
public class DosQuery {  
public static void main(String[] args) {
 
String cmd;
cmd = "cmd /c ping localhost ";
 
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);
 
InputStream i_stream = p.getInputStream();
InputStreamReader reader = new InputStreamReader(i_stream);  
 
InputStream out = new BufferedInputStream(p.getInputStream());  
 
String s =null;
 
BufferedReader bf_reader= new BufferedReader(reader);  
while ((s = bf_reader.readLine()) != null) {
byte[] b = new byte[1024];  
int n = out.read(b);
for(int i=0; i<n; i++)  
System.out.print((char)b[i]);
}
 
p.waitFor();//si l'application doit attendre a ce que ce process fini
 
}catch(Exception e) {
System.out.println("erreur d'execution " + cmd + e.getMessage());
}
}  
}

Reply

Marsh Posté le 04-06-2006 à 16:39:36    

balises code :o caymieu :o


---------------
Mon feedback
Reply

Marsh Posté le 04-06-2006 à 16:49:27    

et sinon ben  

Code :
  1. String cmd;
  2. cmd = "cmd /c ping localhost >test.txt";

 
et la ou tu as ton fichier DosQuery.java, tu verras apparaitre un test.txt avec le resultat de la commande.


---------------
Mon feedback
Reply

Marsh Posté le 04-06-2006 à 16:52:00    

et pourquoi tu lance ping sans un CMD, pourquoi pas ping directmeent ?

Reply

Marsh Posté le 04-06-2006 à 16:52:45    

tiens spa bete ca...j'ai meme pas regardé [:dawa]


---------------
Mon feedback
Reply

Marsh Posté le 04-06-2006 à 16:53:04    

Et puis quand on est moderne, on utilise :  
 
http://java.sun.com/j2se/1.5.0/doc [...] hable(int)

Reply

Marsh Posté le 04-06-2006 à 16:53:49    

par contre quand tu fais ca il aime pas les caracteres speciaux (ç, é, ...)


---------------
Mon feedback
Reply

Sujets relatifs:

Leave a Replay

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