smathedark
Mitglied
Hallo,
ich rufe aus meiner JavaApplikation heraus das Windows Ping auf.
Dies geschieht über die Klasse ProcessBuilder. Die Ausgabe nehme ich über einen InputStream der in einen BufferedReader einliest entgegen. Leider ist der String den ich durch den BufferedReader erhalte nicht der, den ich auf der Windowskosole sehe.
Beim Aufruf von Ping meldet das das Programm "Ping wird ausgeführt für IP ...".
In der Windowskonsole sehe ich die Umlaute, in meinem BufferedReader werden diese durch ? dargestellt.
Ich habe schon die getBytes() Methode des Strings mit verschiedenen CharacterSets versucht, diese heben das ? aber nicht auf.
Kann es sein, dass ich dem Inputstream schon das richtige CharacterSet mitteilen muss? Irgentwie muss ich doch die selbe ausgabe wie diie Windowskonsole hinbekommen.
Hier noch ein wenig Code
Danke schonmal
ich rufe aus meiner JavaApplikation heraus das Windows Ping auf.
Dies geschieht über die Klasse ProcessBuilder. Die Ausgabe nehme ich über einen InputStream der in einen BufferedReader einliest entgegen. Leider ist der String den ich durch den BufferedReader erhalte nicht der, den ich auf der Windowskosole sehe.
Beim Aufruf von Ping meldet das das Programm "Ping wird ausgeführt für IP ...".
In der Windowskonsole sehe ich die Umlaute, in meinem BufferedReader werden diese durch ? dargestellt.
Ich habe schon die getBytes() Methode des Strings mit verschiedenen CharacterSets versucht, diese heben das ? aber nicht auf.
Kann es sein, dass ich dem Inputstream schon das richtige CharacterSet mitteilen muss? Irgentwie muss ich doch die selbe ausgabe wie diie Windowskonsole hinbekommen.
Hier noch ein wenig Code
Code:
processBuilder = new ProcessBuilder(call.getCall()); // Call ist eine eigene Klasse die den Aufrufstring des externen Programm darstellt
process = processBuilder.start();
InputStream is = process.getInputStream();
isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
line = br.readLine();
System.out.println(line);
Danke schonmal