Felix: Das Programm neustarten.

Gibt es einen Befehl mit dem ich das Programm noch mal neu starten kann? Ich habe in der Api unter System gesucht, aber nichts gefunden.

Danke

Felix

  1. Hi,

    Gibt es einen Befehl mit dem ich das Programm noch mal neu starten kann? Ich habe in der Api unter System gesucht, aber nichts gefunden.

    Da gibt es viele Möglichkeiten.

    Ich würde eine neue Instanz der Klasse bilden und deren main-Methode aufrufen.

    Danke

    Felix

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      Hi auch

      Ich würde eine neue Instanz der Klasse bilden und deren main-Methode aufrufen.

      Bist du sicher, dass das zum gewünschten Ergebnis führen würde - die main-Methode ist statisch, eine neue Instanz der Klasse würde rein gar nichts bewirken.
      Nach meinem Verständnis ist es viel mehr erforderlich, die aktuelle Ausführung abzubrechen, alle statischen Variablen zurückzusetzen und dann die main-Methode aufzurufen.
      Ob das auch automatisiert möglich ist, kann ich auf die schnelle auch nicht sagen - das einzige, was ich in der kurzen Zeit gefunden habe war folgendes:

      An implementation of the Java programming language may unload classes. A class or interface may be unloaded if and only if its defining class loader may be reclaimed by the garbage collector as discussed in §12.6. Classes and interfaces loaded by the bootstrap loader may not be unloaded.

      Andere Möglichkeiten, eine Klasse auf ihre Initialisierungswerte zurückzusetzten fallen mir jetzt nicht eine - außer natürlich der Aufruf einer 2. VM in einem eigenen Prozess...

      cu,
      Andreas

      cu2, Christoph

      1. Hi,

        Ich würde eine neue Instanz der Klasse bilden und deren main-Methode aufrufen.
        Bist du sicher, dass das zum gewünschten Ergebnis führen würde - die main-Methode ist statisch, eine neue Instanz der Klasse würde rein gar nichts bewirken.

        Ups - die Hitze...

        Ok, neue Instanz, und dann deren nicht-statische Arbeits-Methode aufrufen...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      2. Hi,

        Ich würde eine neue Instanz der Klasse bilden und deren main-Methode aufrufen.
        Bist du sicher, dass das zum gewünschten Ergebnis führen würde - die main-Methode ist statisch, eine neue Instanz der Klasse würde rein gar nichts bewirken.

        Das mit der main-Methode war so (allgemein) natürlich Quatsch.

        Bei mir sieht die (statische) main-Methode eigentlich immer so aus, daß sie eine neue Instanz der Klasse erzeugt und dann eine (nicht-statische) Methode dieser neuen Instanz aufruft (die Methode nenn ich normalerweise work), die die eigentliche Arbeit verrichtet.
        In dem Fall reicht ein einfacher Aufruf der main-Methode (die ja dann die neue Instanz erzeugt usw.)

        Oder eben die neue Instanz selbst erzeugen und dann die work-Methode aufrufen...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Also, ich habe es genauso gemacht, wie in Deiner 1. Antwort beschrieben und es Klappt problemlos.
          Wozu also die Korrektur? ;-)