# Dispose() anstatt system.exit(0)



## suchender (15. Nov 2004)

Das Hauptprogrammfenster startet ein Unterprogramm (fremdes Code) mit eigenem Fenster.
Das Unterprogramm wird über Main-Methode gestartet.

Problem: 

Das Unterprogramm benutzt 
	
	
	
	





```
System.exit(0)
```
 wenn das Fenster geschloßen wird.
Das Hauptprogramm wird dadurch ebenfalls terminiert.

Frage: 

Ist es möglich, Hauptprogramm(fenster) unabhängig von den Unterprogrammen laufen zu lassen?

--
Im voraus Danke.[/b]


----------



## dotlens (15. Nov 2004)

du kannst das unterprogramm auch einfach mit:

```
setVisible(false);
dispose();
```
beenden


----------



## Roar (15. Nov 2004)

entweder starte daas unterprogramm in einem neuen java prozess, oder: vielleicht kannst du den windowlistener an dem unterprogramm entfernen, wenn er nicht setDedaultblablabla() genutzt hat, oder du setzt Shutdown hooks ein, die dein prog irgendwie am leben halten. oder du wartest auf java 6, da ksnnt du mehrere programme unabhngig in einer vm ausführen


----------



## Bleiglanz (15. Nov 2004)

was soll das mit dem Unterprogramm - heisst das, du kannst da nicht ran? 

System.exit(0) sollte man eben NIE benutzen, eine alte Java-Binsenweisheit.. Grund: siehe deine Frage...

Starte das Programm mit einem Security-Kontext und verbiete den Zugriff, das könnte gehen...


----------



## suchender (15. Nov 2004)

Danke Jungs.

Ich versuche das Unterprogramm in einem neuen Prozess zu starten.


----------



## suchender (15. Nov 2004)

> Starte das Programm mit einem Security-Kontext und verbiete den Zugriff, das könnte gehen...

Bleiglanz, könntest du etwas mehr dazu sagen?
Was ist Security-Kontext?
Und wie geht es?

Danke.


----------



## Bleiglanz (15. Nov 2004)

datei "meine.policy" anlegen

```
grant {
   // alles was erlaubt ist (Dateisystem? usw)
   // RuntimePermission exitVm darf natürlich nicht vorkommen!!
};
```
dann mit

```
java -Djava.security.manager -Djava.security.policy=meine.policy   
KlassenNameMitMain
```
starten


----------



## suchender (15. Nov 2004)

Vielen Dank, Bleiglanz!

Diesen Lösungsweg finde ich sehr interessant und elegant.
Es ist vor allem ganz neu für mich, darüber werde ich jetzt etwas nachlesen.

Übrigens könntest du etwas mehr zu dieser Java-Binsenweisheit sagen? Ich hab's nicht ganz verstanden, inwiefern ist es ernst gemeint?

>System.exit(0) sollte man eben NIE benutzen, eine alte Java-Binsenweisheit..

Nochmal vielen Dank für die Hilfe.


----------



## Roar (15. Nov 2004)

@Bleiglanz: hmmja, aber dann muss er ja trotzdem einen neuen prozess für das unterprogramm (was auch imerm das ist) machen, dann könnte man die policy gan zraus lassen wenn es nur darum geht dass das unterprogramm das hauptprogramm mitschließt *grübel*


----------

