Timer bauen, Main Methode immer wieder neu starten

javadau2018

Mitglied
Guten Morgen,
bei mir schlägt mal wieder meine Unwissenheit zu.
Ich baue momentan an einem Timer, der ein Programm alle 5 Min. neu starten lassen soll. Das Ganze soll als Systemdienstprogramm laufen.
Es muss also immer wieder die Main Methode initialisieren werden. Folgendes habe ich mir schon zusammen gebaut/gesucht.
In der Hauptdatei wird folgender Aufruf gestartet
Java:
public static void TimerReloaded (String timerTask[], String args) throws IOException {
      
        TimerReloaded.Timer(timerTask);
    }
Und dann kommt in der TimerReloaded folgender Aufruf:
Java:
import java.util.Timer;
import java.util.TimerTask;
import java.util.*;

    public class TimerReloaded {
       public static void Timer(String[] timerTask, String args) {
          // creating timer task, timer
          TimerTask timerrun = new Timer();
          Timer timer = new Timer();
        
          // scheduling the task at interval
          timer.schedule(timerrun,5000, 5000);    
       }
       // this method performs the task
       public void run() {
         
          System.out.println("timer working");    
       }  
    }

Diesen Code habe ich hier aus dem Forum. Leider habe ich logischer Weise den selben Fehler, aber es wurde leider nicht berichtet, ob und wie der Fehler behoben wurde.... Und ich selber erkenne den Fehler leider nicht.

ist das Überhaupt der richtige Weg, bzw. gibt es vllt. einen der noch eleganter/ besser geeigent ist?

Vielen Dank für eure Hilfe!
 

MoxxiManagarm

Top Contributor
Java:
TimerTask timerrun = new Timer();
  • Timer ist kein TimerTask.
  • Dein TimerTask benötigt den run. Aktuell hast du run aber nur für TimerReloaded.
  • Warum ist der ArrayParameter vom Typ String? Du verwendest das Array auch garnicht.
  • Bitte schreibe Methodennamen klein, das verwirrt total mit den Klassennamen
  • Dein Timer-Aufruf hat 1 Parameter, deine Methode 2
Am Ende muss es also etwa so aussehen:

Java:
package javaforum.org.examples;

import java.util.TimerTask;
import java.util.Timer;

public class TimerReloaded {
    public static void setTimer(TimerTask[] tasks) {
       Timer timer = new Timer();
   
       for(TimerTask task : tasks) {
           timer.schedule(task, 1000, 1000);
       } 
    }
 
    public static void main(String[] args) {
        TimerTask task1 = new TimerTask() {
            @Override
            public void run() {
               System.out.println("Timer1 working"); 
            }
        };
     
        TimerTask task2 = new TimerTask() {
            @Override
            public void run() {
               System.out.println("Timer2 working"); 
            }
        };
     
        TimerTask[] tasks= {task1, task2};
     
        setTimer(tasks);
    }
 }
 

javadau2018

Mitglied
Vielen Dank für deine Mühe!!!
Aber ich bekomme überhaupt keine Ausgabe... noch nicht mal wenn ich das Ganze Stand-Alone mache...
Ich habe auch mal das hier ausprobiert:
Java:
        public static void main(String[] args) {
            Timer timer = new Timer ();
            timer.scheduleAtFixedRate (new TimerTask() {
               
                @Override
        public void run() {
                    System.out.println("Hello");
                }
            }, 1000, 2*1000);
           
        }

Aber selbst da gibt mir Eclipse kein sysout....
 

MoxxiManagarm

Top Contributor
Sorry das kann ich nicht nachvollziehen, dein Standalone Test sieht soweit gut aus.

Hast du versucht Eclipse mal neuzustarten. Eventuell hast du noch irgendwelche alten Runnings offen (ggf.siehst du in der Console auch das rote Viereck und es reicht ein Klick darauf), mit denen du dich überschneidest. Das kann schon mal vorkommen, wenn man zuvor fehlerhafte Timer laufen hatte.
 

javadau2018

Mitglied
Ja habe ich ausprobiert.... Leider tut sich aber immer noch nichts....

Die Stopptaste ist auch nicht aktiv.

Wirklich seltsam. Da bin ich mal gespannt wie ich das Problem lösen soll, wenn ich gar nicht sehe was das Programm macht...
 

javadau2018

Mitglied
So, ich bin jetzt mal hergegangen und habe eine neue Workbench aufgemacht und siehe da es funktioniert......
Nun wieder zurück zum eigentlich Problem. Wenn ich jetzt statt "timer1", die Main Methode in einem bestimmten class ausgeben möchte, so das dann das Ganze Programm wieder von vorne anfängt, wie mache ich das am besten?
 

MoxxiManagarm

Top Contributor
Eventuell hattest du ein anderes main gestartet, nicht deinen Test. Egal...

Ich baue momentan an einem Timer, der ein Programm alle 5 Min. neu starten lassen soll. Das Ganze soll als Systemdienstprogramm laufen

Das klingt eigentlich danach, dass du keinen Java Timer brauchst. Gehe mal in die "Aufgabenplanung" von Windows. Du kannst dort eine neue Aufgabe erstellen mit einem 5min Trigger und ein Java Programm starten lassen. Du hast also dann nur diese eine main, welche von Windows und nicht von einem anderen Java Programm angesteuert wird.

Ansonsten ist main eine statische Methode, ich gehe mal davon aus, dass du diese genauso aufrufen kannst wie jede andere statische Methode (habs noch nie probiert)
 

javadau2018

Mitglied
Die Aufgabeplanung kann ich dafür leider nicht benutzen, da das Ganze hinterher auf einen Server laufen soll, und so wie ich verstanden habe unter Tomcat. Also nichts mit Windows....
 

mrBrown

Super-Moderator
Mitarbeiter
Die Aufgabeplanung kann ich dafür leider nicht benutzen, da das Ganze hinterher auf einen Server laufen soll, und so wie ich verstanden habe unter Tomcat. Also nichts mit Windows....
Wenn das im EE-Umfeld läuft, hat das noch mal ganz andere Anforderung.
Ne main über die gestartet wird, gibts dann z.B. gar nicht, von daher solltest du dir erst einmal deine Anforderungen klar machen.
 

javadau2018

Mitglied
Guten Morgen,

ich habe mir deinen Rat zu Herzen genommen und habe mir meinen Code nochmal zur Brust genommen. Nun meine Frage: ich habe folgenden Code:
Java:
private static void loadfiles(String verzName, String verzNameDes, String verzLogFile)

Wie bringe ich Java dazu diese Methode alle 5 Min neu zu starten?

Java:
public static String Timer (String loadfiles) {
        try {
            Thread.sleep(5000);
            } catch(InterruptedException ex) {
              Thread.currentThread().interrupt();
                }
        return loadfiles;

    }
So habe ich es probiert, dass hatte aber leider nicht den gewünschten Erfolg.
 
Zuletzt bearbeitet:

javadau2018

Mitglied
Habe es geschafft.
Java:
try {
            Thread.sleep(iwait);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        initprog();
    }

Manchmal sieht man den Wald vor lauter Bäumen nicht.....
 

mrBrown

Super-Moderator
Mitarbeiter
Thread.sleep ist alles andere als ein Ersatz für nen Timer...

Am ehesten würde man dafür ScheduledExecutorService nutzen, das Javadoc enthält auch wie.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
C Timer aktualisieren Java Basics - Anfänger-Themen 5
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
missy72 Timer oder Timeline Java Basics - Anfänger-Themen 3
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
D Änder der Timer Speeds Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
L Methoden Timer Java Basics - Anfänger-Themen 9
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
S Timer reseten Java Basics - Anfänger-Themen 3
T Timer stoppt zu früh Java Basics - Anfänger-Themen 7
CptK Methoden Timer & Mathematischer Denkfehler Java Basics - Anfänger-Themen 7
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
D Timer programmieren Java Basics - Anfänger-Themen 13
N Timer funktioniert nicht beim starten Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
E Timer erstellen Java Basics - Anfänger-Themen 2
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
S actionlistener timer Java Basics - Anfänger-Themen 9
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
S timer mit imagedatei Java Basics - Anfänger-Themen 5
S timer Java Basics - Anfänger-Themen 0
V Java Uitil Timer Stoppt nicht Java Basics - Anfänger-Themen 2
KaffeeFan Timer beenden Java Basics - Anfänger-Themen 12
K Ampelsteuerung mit Timer Java Basics - Anfänger-Themen 8
F Array und Timer Java Basics - Anfänger-Themen 2
G Timer einsetzen Java Basics - Anfänger-Themen 2
J Timer oder Thread programmieren ? Java Basics - Anfänger-Themen 10
F Timer beendet nicht immer Java Basics - Anfänger-Themen 2
F Timer abbrechen und wieder starten Java Basics - Anfänger-Themen 5
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
T Timer - HILFE Java Basics - Anfänger-Themen 10
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Schneller Timer Java Basics - Anfänger-Themen 2
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
B Timer beenden? Java Basics - Anfänger-Themen 0
G Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen Java Basics - Anfänger-Themen 6
O Delayed Timer erstellen Java Basics - Anfänger-Themen 3
M Timer / Thread Java Basics - Anfänger-Themen 43
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
D Problem mit Methode und Timer Java Basics - Anfänger-Themen 35
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
J Swing Timer Java Basics - Anfänger-Themen 3
M Einfacher Timer ;) Java Basics - Anfänger-Themen 15
M Timer für Termial-Eingaben Java Basics - Anfänger-Themen 3
C Methoden Einen Timer einbauen, aber wie? Java Basics - Anfänger-Themen 5
B Timer Java Basics - Anfänger-Themen 25
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
S Erste Schritte Java Timer Java Basics - Anfänger-Themen 13
E Threads Timer Java Basics - Anfänger-Themen 6
Spin KI Anfänger Frage : Timer Problem Java Basics - Anfänger-Themen 6
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
L Erste Schritte Timer und Zugriffsattribute Java Basics - Anfänger-Themen 5
M Audio + Timer Java Basics - Anfänger-Themen 12
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
R Klassen MemorySpiel: brauche Timer Java Basics - Anfänger-Themen 3
D Timer in Applet Java Basics - Anfänger-Themen 2
ruerob Warum ist Timer schneller als While? Java Basics - Anfänger-Themen 9
F Java Timer Frage Java Basics - Anfänger-Themen 14
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
B Timer Java Basics - Anfänger-Themen 2
S timer task problem Java Basics - Anfänger-Themen 2
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
S "Kleines" Problem mit dem Timer Java Basics - Anfänger-Themen 4
Luk10 Problem mit vielen Timer(-Events) Java Basics - Anfänger-Themen 17
Luk10 Swing timer und Threads Java Basics - Anfänger-Themen 4
W Timer erstellen Java Basics - Anfänger-Themen 2
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
M Timer unterbrechen? Wo ist mein Thread? Java Basics - Anfänger-Themen 2
L Timer innerhalb eines Threads Java Basics - Anfänger-Themen 3
P Java Timer Java Basics - Anfänger-Themen 2
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
B problem mit timer/timertask, Farbverlauf Java Basics - Anfänger-Themen 10
Piwi Timer bei Programmende beenden Java Basics - Anfänger-Themen 25
T zweiter Timer überschreibt den ersten Timer ? Java Basics - Anfänger-Themen 5
kulturfenster Problem mit javax.swing.Timer Java Basics - Anfänger-Themen 2
C Regelmäßigen Timer bei Zeitüberschreitung nacheinander abarbeiten Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
J timer Java Basics - Anfänger-Themen 2
H Timer Java Basics - Anfänger-Themen 3
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5
G Klasse mit Timer nicht beenden Java Basics - Anfänger-Themen 6
S Timer / TimerTask Frage Java Basics - Anfänger-Themen 8
S Timer bzw. TimerTask Frage Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben