[java] probleme de process

Fermé
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 25 avril 2006 à 19:31
 monaem - 30 avril 2007 à 02:48
Bonjour les gens

voila j'ai un problème sur un code java dans lequel je crée un nouveau processus qui lance une commande ping faite a la main. Voici ce que ca donne :


import java.io.*;
import java.net.*;

public class Ping
{
public static void main(String[] args) {
try {
int i=0;
Process p = null;
Runtime rt = Runtime.getRuntime();
p = rt.exec("C:\\utilPing\\pingoo.exe");

...............

System.out.println(p);
}catch (Exception e) {
e.printStackTrace();
}
}
}

Ici le programme pingoo retourne la valeur 0 si l'hôte est présent, 1 sinon. Le problème c'est que je voudrais récupérer la valeur retourner par mon programme pingoo, j'ai bien essayé de placer le "i=p.exitValue();" mais j'ai remarqué que cela n'attend pas la fin de ce programme annexe pingoo, et ca génère une exception.

J'ai aussi tenté le p.wait(); et le p.waitFor(); mais cela me bloque alors le programme java qui continue de tourner au lieu de se stopper.

Si quelqu'un a une solution pour attendre que le processus soit fini et que je puisse récupérer ma valeur de retour, ou même juste une piste, celle-ci sera la bienvenue.

Merci d'avance.
A voir également:

2 réponses

import java.io.*;
import java.net.*;

public class Ping
{ //int ipAddress=127.0.0.1;
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("ping www.yahoo.fr");
BufferedReader bos = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
//Le texte de sortie du ping est récupéré ligne par ligne
while ((line = bos.readLine()) != null) {
//Effectue le traitemnet de chaque ligne de texte récupérée ici
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}

}
}
1
Utilisateur anonyme
26 avril 2006 à 12:58
public void ping() {
  try {
    Process p = Runtime.getRuntime().exec("ping " + ipAddress);
    BufferedReader bos = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String line = "";
      //Le texte de sortie du ping est récupéré ligne par ligne
      while ((line = bos.readLine()) != null) {
       //Effectue le traitemnet de chaque ligne de texte récupérée ici
        }
    } catch (IOException e) {
      e.printStackTrace();
    }
}



;-)
HackTrack
0