# Programm sich selbst neu starten lassen



## BeSp (5. Feb 2007)

Hallo,
wie kann man es denn anstellen dass sich ein Programm selbst neu starten kann, wenn eventuell ein Ereignis oder eine Exception z.B. eintritt?

Grüße,
BeSp


----------



## dieta (5. Feb 2007)

Versuch's mal so:

```
public class Starter
{
	
	public static void main(String[] args)
	{
		while(true)
		{
			try
			{
				IrgeneinProgDasGerneMalWegenEinerExceptionAbschmiert bla = new IrgeneinProgDasGerneMalWegenEinerExceptionAbschmiert();
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	
}
```
Ist aber bei Programmen, die keine Funktion zum Beenden extra eingebaut haben nicht sehr zu empfehlen.


----------



## BeSp (5. Feb 2007)

Danke schonmal,
gibt es denn auch eine Lösung ohne die Verwendung von Exceptions?

mfg


----------



## dieta (5. Feb 2007)

Wenn du ein Prog mit GUI hast:

```
//Irgendwas ist passiert, warum das Prog neu gestartet werden müsste
        destroy();
        //Hier noch evtl. laufende Threads unterbrechen
        mainClass.main();
```


----------



## KSG9|sebastian (5. Feb 2007)

BeSp hat gesagt.:
			
		

> wie kann man es denn anstellen dass sich ein Programm selbst neu starten kann, wenn eventuell ein Ereignis oder eine *Exception* z.B. eintritt?



Da hast du dir die Antwort schon selbst gegeben. Wenn ein Programm unerwartet abbricht dann normalerweise immer aufgrund einer Exception. Und auf die musst du halt reagieren


----------



## rik0 (5. Feb 2007)

ich glaub es geht hier eher darum, wie man ein Programm explizit neu startet, z.b. bei Klick auf nen Button. Die Antwort würde mich auch interessieren.


----------



## Azrahel (5. Feb 2007)

Kommt wohl ganz drauf an was für ein Programm 

Bei Java reichts IMO schon wie oben beschrieben, bei was andrem kann man Runtime.getRuntime().exec(String Programmbla) benutzen -> Einfach mal die Forumssuche nach Runtime nutzen :toll:


----------



## BeSp (5. Feb 2007)

Also ich wollte schon das Programm einfach nach dem Drücken von "Abbrechen" auf einer GUI einfach wieder neustarten (nachdem es eine entsprechende meldung gab) ... Das Beispiel von vorhin erzeugt mir nämlich ganz viele viele viele neue Frames gleich am Start ...


----------



## Azrahel (5. Feb 2007)

Ja, das ist mir klar. Wahrscheinlich so viele bis deine Mühle in die Knie geht  :meld: 

Problem:

```
while(true)
```

Dann macht der das nämlich verflucht oft. Um genau zu sein bis dein Ram voll ist und er sich nicht mehr auf die festplatte auslagern kann... oder das Ewerk den Strom abstellt...

Aber du hast doch nen Abbrechen Button. Da haste doch sicherlich auch nen Listener dran (wehe wenn nicht  :wink: )
In der ActionPerformed bauste dann den aufruf deines Programms

```
new WelchesProgrammAuchImmer();
```
ein und lässt die while-schleife da mal weg  :toll:

Deswegen hat dieta ja auch 


> Ist aber bei Programmen, die keine Funktion zum Beenden extra eingebaut haben nicht sehr zu empfehlen.


 dabei geschrieben  :wink:


----------

