Datei Lesen

lernen.2007

Erfahrenes Mitglied
Hallo Leute,

mit diesem Befehl:

Code:
Runtime.getRuntime().exec("cmd /c spamassassin -D -t < " + path
                         + emailFile.toString() + " > " + resultFile.toString());

wird mein email File auf Spam geprüft und die Lösung dann in result File geschrieben. Im nachhinein will ich diese resultFile lesen. Es liefert immer null und wenn ich mit doppel Click öffnen will, dann kommt das folgende Fehlermeldung:

Auf das Dokument kann nicht zugegriffen werden, weil es von einer Anwendung benutzt wird.

Wenn ich mein Java Programm beende, dann kann ich den Inhalt von Result File betrachten.

Was mache ich falsch oder was sollte ich anders machen, damit ich gleich nach ausführen von Commandos das Result File lesen kann?

Gruß
erkan
 
Hi,

Wahrscheinlich läuft der Prozess im Hintergrund noch.
Du könntest versuchen den Prozess explizit zu beenden.

Java:
Process p = Runtime.getRuntime().exec("cmd /c spamassassin -D -t < " + path
                         + emailFile.toString() + " > " + resultFile.toString());
//...
p.destroy();

Oder du kannst mit p.waitFor() darauf warten, dass der Prozess beendet wurde.

Grüße
Daniel
 
Hallo,

ich habe versucht aber das hat dann auch nichts gebracht. Jetzt habe ich anders gemacht. Anstatt gleich ein Result File zu erzeugen, lese ich den Console Ausgabe.


Trotzdem Danke für deine Mühe.

Gruß
erkan
 
Hallo,

ich denke mal Du wirst innerhalb Deiner Anwendung den Filestream nicht geschlossen haben, deswegen konnte der nicht auf die Datei zugreifen, weil Deine Anwendung noch den exklusiven Zugriff hatte. Also schließe doch einfach mal den Filestream mit .close() Bevor Du auf Spam überprüfst.

Gruß Klaus.
 
Zurück