Appel d'une application externe
Bonsoir à tous,
Voilà je suis face à un problème lors de l'appel à une application externe.
Mon problème semble venir de ma migration vers vista. En effet, voici le problème :
Je fais un appel à winrar et récupère les résultats d'MS DOS comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| final Process process = runtime.exec(args);
for(String tmp : args){
System.out.print(tmp+" ");
}
// Consommation de la sortie standard de l'application externe dans un Thread separe
new Thread() {
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
try {
while((line = reader.readLine()) != null) {
System.out.println(line);
// Traitement du flux de sortie de l'application si besoin est
}
} finally {
reader.close();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}.start(); |
Sous XP je pouvais lire en les résultats, mais là voici le retour après éxécution :
ഊ剁删㌮㠰†⁃潰祲楧桴
挩‱㤹㌭㈰〸⁁汥硡湤敲⁒潳桡氠†ㄶ⁓数′〰㠍敲獩潮⁓桡牥睡牥††††⁐潵爠潢瑥湩爠摥❡楤攬⁴慰敺⁒䅒*㼍硴牡捴楯渠摥灵楳⁄㩜呥浰屉湣潭楮杜愮牡爍桩猠牥汥慳攠楳桡牥搠批㨠䵥汶楮ㄸഊഊ佷渠獩瑥㨍睷桡牥灬慮整氍潲潲攠杲敡琠牥汥慳敳⁹潵慮⁶楳楴 etc ...
J'ai vérifié en exécutant exactement la même commande directement sous MS-DOS, et c'est bien du français.
Il y'a t'il une particularité pour la gestion du flux entre Java et la console MS-DOS sous Windows Vista ?
Merci pour la lecture