cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020372 10 févr. 2012 à 16:02
Bonjour,
Ok, tu as bien fait d'ouvrir un nouveau sujet.
Ton problème est que tu ne sais pas comment récupérer la sortie de ta commande c'est ca. Dans ce cas, utilises cette fonction. Il faut récupérer un flux :
/**
* Cette procédure permet de lancer la récupération des flux dans un thread distinct
* @param stream
* Le flux à récupérer
* @param destination
* La liste dans laquelle on enregistre le résultat
*/
private void lancerRecuperationSortie(final InputStream stream, final List<String> destination){
new Thread() {
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line = "";
try {
while((line = reader.readLine()) != null) {
destination.add(line);
}
} finally {
reader.close();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}.start();
}
Tu peux utiliser cette fonction de la manière suivante :
List<String> lignes = new ArrayList<String>();
Process process = runtime.exec(commande);
lancerRecuperationSortie(process.getInputStream(), lignes);
Ensuite, si aucun périphérique n'est détecté par la commande dos, tu n'auras pas d'exception de levée. Ta ligne System.out.println("Aucun Périphérique Détecté"); est donc trompeuse. Tu devrais plutot afficher dans ce cas "Une erreur est survenue". Mais faire un catch(Exception ) n'est jamais une bonne idée.