Les Allergies
Alimentaires
Posez votre question Signaler

[java] probleme de process

arth 6906Messages postés 27 septembre 2005Date d'inscription 30 mai 2012Dernière intervention - Dernière réponse le 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.
Lire la suite 

[java] probleme de process »

2 réponses
Réponse
+1
moins plus
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();
}

}
}
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « [java] probleme de process » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?