Superpapagei Geschrieben 8. Mai 2002 Geschrieben 8. Mai 2002 Damit ist eigentlich alles schon gesagt ...hier ist der Code abschnitt . Wäre cool wenn mir das einer erklären könnte ... import java.io.*; public class logCheck { boolean fileFlag; File log = new File("C:\\sdi.log"); public boolean logCheck() { if(log.exists()){ fileFlag = true; System.out.println("Ja Es gibt bereits einen Job"); } return fileFlag; } public boolean createLog(){ try{ FileWriter fw = new FileWriter(log); BufferedWriter buff = new BufferedWriter(fw); System.out.println("Nein Es gibt noch keinen Job und log file wurde erzeugt"); fileFlag = false; }catch(IOException e){System.out.println("t");} return fileFlag; } public boolean deleteLog(){ if(log.exists()){ log.deleteOnExit(); fileFlag = false; } return fileFlag; } } Zitieren
murphey Geschrieben 8. Mai 2002 Geschrieben 8. Mai 2002 bei mir funktioniert das loeschen. os: debian linux j2sdk 1.4 public static void main(String args[]) { LogCheck check=new LogCheck(); check.createLog(); check.deleteLog(); } in der api steht, dass die virtuelle maschine sauber beendet werden muss, damit deleteOnExit das file loescht. liegt es vielleicht daran? nebenbei: hiervon verstehe ich den sinn nicht: System.out.println("Nein Es gibt noch keinen Job und log file wurde erzeugt"); wird schliesslich immer geschrieben, wenn die methode createLog aufgerufen wird. hth murphey Zitieren
Superpapagei Geschrieben 14. Mai 2002 Autor Geschrieben 14. Mai 2002 Hm also das Ding läuft hier bei uns als Cronjob d.h. der Server läuft und ruft alle paar Minuten den Job auf . Bestandteil dieses Jobs ist die Prüfung ob diese Datei existiert . Damit der aktuelle Job,für den Fall das es sie schon gibt und somit der letzte Job noch läuft , abgebrochen wird. Auf meinem Rechner ist es so das , wenn ich versuche den File manuel zu löschen ,dies verweigert wird mit dem Hinweis das diese gerade benutzt wird . Nun ist der Cronjob bzw diese Class die einzige Stelle die darauf zugreifen sollte . Bloss der Job sollte beendet sein bzw. ist er ja auch . Nur die Datei ist noch da weil sie halt nicht gelöscht werden kann . Da es bei Dir funktioniert ist die Frage wer oder was bei mir darauf zugreift . Mein OS ist WindowsNT4.0 , der Server ist ein Resin 2.0.4 . Zu der Sache mit der Ausgabe ist es so da bei mir zuerst auf die logCheck() Methode zugegriffen wird. Wird diese mit true beantwortet beendet sich der Cronjob und es werden keine weiteren Anweisungen mehr ausgeführt . Wird diese mit false beantwortet dann wird createLog () angeschmissen . Sprich es wird nur ein Log erzeugt wenn noch keiner existiert . Ich hoffe das war jetzt nicht zu wirsch ;-) Danke erstmal für die Antwort . Cu Mfg Superpapagei Zitieren
Snowghost Geschrieben 14. Mai 2002 Geschrieben 14. Mai 2002 Hast du schon mal probiert, die Datei bzw. dem BufferedWriter vor dem löschen zu schliessen (mit close() )?? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.