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; } }
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
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
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() )??
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden