# Java Programm soll im Hintergrund laufen (vgl. fork() bei C)



## SithLord (2. Okt 2005)

Hi,

ich hab mir vor einiger Zeit einen IRC Bot in C++ geschrieben, dieser "sitzt" auf ner Linux Shell und wird über Putty gestartet. Da ich fork() benutze kann ich Putty nach dem Starten wieder schließen und er läuft trotzdem weiter. 
Diesen Bot wollte ich jetzt für Java umschreiben, bloß dummerweise muss man (nach meinem jetzigen Erkenntnisstand) die Kosole für die Ausführung des Programmes offen lassen da die Java Dämonen zum Laufen immer noch einen "richtigen" Thread benötigen, der wiederum auf die Konsole angewiesen ist.

Gitbs ne Lösung wie ich das umsetzen kann?

Danke schonmal im Vorraus


----------



## SebiB90 (2. Okt 2005)

das müsste doch mit einer *.jar datei gehen die man mit doppelklick startet, da gibts dann keine konsole die geöffnet wird.


----------



## Roar (2. Okt 2005)

SebiB90 hat gesagt.:
			
		

> das müsste doch mit einer *.jar datei gehen die man mit doppelklick startet, da gibts dann keine konsole die geöffnet wird.


... 
und wo sol ler doppelklicken wenn er keine gui hat?

ich benutz putty nicht, aber wenn du dir ein extra programm schreibst, welches das eigentliche programm erst startet und sich dann wieder beendet sollte das doch gehen.


----------



## Beni (2. Okt 2005)

Mit "javaw" starten, allerdings wirst du dann nie eine Ausgabe sehen :wink:

Alternativ wäre ein kleines Ausgabefenster (und ein Thread in dem der Bot läuft) möglich.


----------



## SithLord (2. Okt 2005)

ausgabe wäre egal nachdem eigentlich nur eine datei zum loggen vorgesehen is, befehle nimmt er dann auch direkt über die irc verbindung auf... 
danke


----------



## SebiB90 (2. Okt 2005)

Roar hat gesagt.:
			
		

> SebiB90 hat gesagt.:
> 
> 
> 
> ...


er öffnet ein frame und macht danach setVisible(false) programm läuft dann doch weiter oder?


----------



## Roar (2. Okt 2005)

SebiB90 hat gesagt.:
			
		

> Roar hat gesagt.:
> 
> 
> 
> ...


da würde nur schon beim instantiieren von Frame eine HeadlessException fliegen, und behoben würde's das problem auch nicht, da das programm ja noch immer die konsole hat. mit javaw starten sollte das aber eigentlich gehen  ???:L


----------



## Bleiglanz (2. Okt 2005)

wenn du über putty drin bist, dann setz halt den befehl mit 

```
nohup javaw Meinprog &
```
ab


----------



## thE_29 (3. Okt 2005)

Du könntest auch mit STRG + Z (wenn in der Konsole gestartet) das Programm "zurücklegen"

mit %1 (wobei 1 = die Zahl der zZ so handgehabten Programme..) kannst du wieder zurückwechseln!

Aber ich würds auch via nohp .. & machen!


----------



## Bert Brenner (4. Okt 2005)

Oder du benutzt "screen".

http://www.gnu.org/software/screen/screen.html


----------



## SithLord (4. Okt 2005)

also mit nohup klappt alles perfekt, danke


----------

