Hey Leute ich hab ein Problem beim einlesen der einzelnen Zeilen der Windoof commandline.Es funktioniert alles wunderbar bis zu dem Punkt an dem das command line basierende Virensuchprogramm den Scan startet.Problem hierbei es ändert sich während des Scans immer nur die letzte Zeile wodurch diese nicht eingelesen wird.Gerade die ist aber besonders wichtig um Ergebnisse zu sehen.Hier einmal mein derzeitiger Einlesecode für die cmd:
und ich rufe das ganze mit folgendem auf :
Hier einmal ein Bild der Gui in welcher sich ein modifiziertes JTextArea Object befindet welches alle System.out.Printlns schluckt und darstellt:
Hier nun ein Bild der cmd im Normalbetrieb ohne Java Interaktion :
klar zu erkennen die Zeile mit Rocketdock welche sich ständig verändert und neue Objecte und Pfade angibt welche gescannt werden.
Zuguterletzt nocheimal ein Bild meines Programms nach ablauf des Scans :
klar auch hier zu erkennen die Entscheidene Zeile wird einfach ausgelassen und alles restliche ist wieder zu sehen.
???:L
Was soll ich jetzt tun?Irgendelche Ideen?
Update 20:15: :idea: OOOhhh was mir grade aufgefallen ist .Die Zeile wird gelesen.Auch immer wieder nur wird der String nicht getrennt und erscheint erst nach Ende des Prozesses als superlange Zeile in meiner Improvisierten Console :/ was nun?
hier ein Bild:
Java:
package testing;
import java.io.*;
public class CMDtest {
static public void executeCommand(String[] commandArr) {
System.out.println("Windows command: "+ java.util.Arrays.toString(commandArr));
try {
ProcessBuilder pb = new ProcessBuilder(commandArr);
pb.redirectErrorStream(true);
Process proc = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
System.out.println("Process started !");
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
proc.destroy();
System.out.println("Process ended !");
} catch (Exception x) {
x.printStackTrace();
}
}
}
und ich rufe das ganze mit folgendem auf :
Java:
String[] cmdArr = {"cmd","/c",Mainmenue.Tempdir + "emsisoft\\a2cmd.exe /smart"};
CMDtest.executeCommand(cmdArr);
Hier einmal ein Bild der Gui in welcher sich ein modifiziertes JTextArea Object befindet welches alle System.out.Printlns schluckt und darstellt:
Hier nun ein Bild der cmd im Normalbetrieb ohne Java Interaktion :
klar zu erkennen die Zeile mit Rocketdock welche sich ständig verändert und neue Objecte und Pfade angibt welche gescannt werden.
Zuguterletzt nocheimal ein Bild meines Programms nach ablauf des Scans :
klar auch hier zu erkennen die Entscheidene Zeile wird einfach ausgelassen und alles restliche ist wieder zu sehen.
???:L
Was soll ich jetzt tun?Irgendelche Ideen?
Update 20:15: :idea: OOOhhh was mir grade aufgefallen ist .Die Zeile wird gelesen.Auch immer wieder nur wird der String nicht getrennt und erscheint erst nach Ende des Prozesses als superlange Zeile in meiner Improvisierten Console :/ was nun?
hier ein Bild:
Zuletzt bearbeitet: