kostenloser Webspace werbefrei: lima-city


Programm neu starten

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    fr3z3r

    fr3z3r hat kostenlosen Webspace.

    Hallo zusammen,

    ich bin gerade dabei mir einen Java-Basierenden Proxy zu schreiben. Doch nun habe ich ein Problem:
    } catch (SocketException se) {
    				// Error-Log
    				if (logs > 0) {
    					logging logtask = new logging(client.getInetAddress().toString(), message, "SocketException!");
    					threadExecutor.execute(logtask);
    
    					System.exit(1);
    				}
    			}


    Nun möchte ich jedoch das Programm nicht beenden sondern nur neu starten. Gibt es eine Möglichkeit dies direkt zu tun oder muss ich es über den Umweg -> 2. Prg aufrufen -> 1. Prg beenden -> 1. Prg aufrufen -> 2. Prg beenden machen?

    Edit: Mit einer Schleife ist das ganze nicht zu lösen da die Variabeln neu inizialisiert werden müssen. Und ebenso ein ProxyServer newPS = new ProxyServer(); wird nicht gehen, da die Ports noch in Verwendung sind.

    Beitrag zuletzt geändert: 15.12.2009 10:00:12 von fr3z3r
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Moin,

    ein Neustart der Applikation ist nicht ohne Weiteres möglich.
    Das resultiert darin, dass die JVM nach dem System.exit(0)-Aufruf runtergefahren wird.
    Somit geht jeder Prozess verloren.

    Dass die Ports geblockt sind, wenn Du den ProxyServer neu startest, ist allerdings normal.
    Die Ressourcen werden erst beim Schließen der JVM wieder freigegeben.

    Du wirst wohl einen Umweg über eine native Klasse oder ähnliches gehen müssen,
    welche den Prozess steuert und nach Schließung der JVM den Aufruf des Programms wiederholt.

    Gruß,
    Pawnee

    Beitrag zuletzt geändert: 15.12.2009 12:19:22 von pawnee
  4. Autor dieses Themas

    fr3z3r

    fr3z3r hat kostenlosen Webspace.

    pawnee schrieb:
    Du wirst wohl einen Umweg über eine native Klasse oder ähnliches gehen müssen,
    welche den Prozess steuert und nach Schließung der JVM den Aufruf des Programms wiederholt.


    Hast du dafür irgendein Beispiel wie das aufgebaut sein müsste?
    Kann mir nichts darunter vorstellen.

    Gruss
  5. fr3z3r schrieb:
    Hast du dafür irgendein Beispiel wie das aufgebaut sein müsste?
    Kann mir nichts darunter vorstellen.


    Moin,

    damit meine ich zum Beispiel eine Batch-Datei unter Windows oder ein shell Skript unter Unix.
    Du könntest eine Schleife zusammenbasteln, die das Errorlevel abfragt und je nachdem das Programm neustartet.
    Sollte nicht so schwer einzubinden sein, aber ich bin kein wirklicher Shell/Batch-Liebhaber, deshalb fehlen mir grad die Befehle.

    Aber im Internet solltest Du fündig werden.

    Gruß,
    Pawnee
  6. Autor dieses Themas

    fr3z3r

    fr3z3r hat kostenlosen Webspace.

    pawnee schrieb:
    damit meine ich zum Beispiel eine Batch-Datei unter Windows oder ein shell Skript unter Unix.


    Danke für deine Antwort, aber genau dies wollte ich eigentlich vermeiden, da das Programmunabhängig vom jeweiligen Betriebssystem laufen sollte.
    Dann werde ich mir wohl ein über den Umweg -> 2. JavaPrg aufrufen -> 1. JavaPrg beenden -> 1. JavaPrg aufrufen -> 2. JavaPrg beenden machen müssen...

    Trotzdem danke für deine Antwort.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!