comment executer une commande dos sous java? - Java - Programmation
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());
}
}
}
Marsh Posté le 04-06-2006 à 16:49:27
et sinon ben
Code :
|
et la ou tu as ton fichier DosQuery.java, tu verras apparaitre un test.txt avec le resultat de la commande.
Marsh Posté le 04-06-2006 à 16:52:00
et pourquoi tu lance ping sans un CMD, pourquoi pas ping directmeent ?
Marsh Posté le 04-06-2006 à 16:52:45
ReplyMarsh 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)
Marsh Posté le 04-06-2006 à 16:53:49
par contre quand tu fais ca il aime pas les caracteres speciaux (ç, é, ...)
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]