Programm neu starten
lima-city → Forum → Programmiersprachen → Java
antwort
aufruf
aufrufen
beenden
beispiel
code
dank
datei
internet
liebhaber
native
port
programm
ressource
schleife
shell
system
umweg
vorstellen
windows
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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 -
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 -
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage