# Java Applikation ohne grafische Oberfläche



## thE_29 (10. Mai 2005)

Ist es möglich ein Java Programm im KDE/GNOME zu starten und wenn man dann den KDE/GNOME ausmacht, dass das Programm dann automatisch als Hintergrundprozeß läuft und nicht gekillt wird (weil er ja net zum Xlib connecten kann).


Sprich das man sagt, du hast mehr keine grafische Oberfläche, funktioniere aber trotzdem!


Geht sowas, oder weiß jemand wie das gehen könnte??


mfg


----------



## Sky (10. Mai 2005)

Auf einer Console würde ich ein Prog. einfach mit "nohup" starten; ob das unter KDE/GNOME geht: keine Ahnung!

<Edit>Um es in den Hintergrund zu bringen muß natürlich ein`&' am Ende der Kommandozeile stehen</Edit>


----------



## thE_29 (10. Mai 2005)

Mh, das Problem besteht ja darin, das er immer stirbt, wenn die grafische Oberfläche verschwindet!

Kann man den net irgendwie ne Grafische Oberfläche vorgaukeln??

Sodaß er sich einbildet er hat noch immer was auf was er malen kann, obwohl gar nix da ist!

Denn sobald ich die KDE wieder abmelde, stirbt auch dieser Prozess!


> XIO: fatal IO error 104 (Connection reset by peer) on X Server ":0.0"
> after 0 requests (0 known processed) with 0 events remaining.


----------



## Kaffeebohne (10. Mai 2005)

Du müsstest den Prozess im Runlevel 3 starten lassen, denn X ist in Runnlevel 5 und wenn dieses geswitched wird streben alle Prozesse des Runnlevel 5, in welchem auch dein Javaprogramm ausgeführt wird.

Ob man von Runnlevel 5 ein Programm in niederen Runnlevel ausführen lassen kann, weiss ich leider nicht. Aber wenn du eine Möglichkeit gefunden hast, lass es mich wissen.


----------



## thE_29 (10. Mai 2005)

Naja, wenn ich auf die Konsole gehe (also nicht in der KDE) und sage export DISPLAY=:0.0 und das ganze mit nohup starte, geht das solange bist die KDE abgewürgt ist.

Da er anscheinend ohne XFree nichts mehr machen will. (java.awt. braucht halt ein WindowKit)

Und die KDE ist ja auch nicht ganz tod, es wird nur abgemeldet, dadurch kann ich Xvfb net starten (son Ding was einen Bildschirm vorgaukelt ^^).


----------



## Kaffeebohne (10. Mai 2005)

Achso, ich vergaß dass wenn du ja X11 laufen hast das wahrscheinlich geswingt wird. 

Vielleicht wäre es eine Möglichkeit, zwei Programme zu machen. Eines das auf der Konsole läuft und Ausgaben macht und das andere als GUI welches auf die Ausgaben aufsetzt und sie verarbeitet und grafisch aufbereitet.


----------



## thE_29 (10. Mai 2005)

Naja, das zu trennen ist jetzt bisi schwierig, da das Projekt ziemlich groß ist und uns der Kunde erst jetzt gesagt hat, das er sich manchmal abmelden will....


----------



## Sky (10. Mai 2005)

thE_29 hat gesagt.:
			
		

> Naja, das zu trennen ist jetzt bisi schwierig, da das Projekt ziemlich groß ist und uns der Kunde erst jetzt gesagt hat, das er sich manchmal abmelden will....


Naja, dafür gibt es ja eigentlich einen Termin mit dem Namen "Anforderungsschluss".
Solche Anforderungen werden i.a.R. nicht umgesetzt oder kosten extra (Geld + Zeit)...


----------



## thE_29 (10. Mai 2005)

Das sie extra Geld kosten ist klar, aber nur weil er bei einem Programm das haben will, will ich jetzt nich das ganze Projekt umschreiben und wer weiß ob sich der Kunde über so ne Rechnung freut


----------



## Kaffeebohne (10. Mai 2005)

Wenn er sich nur abmeldet. Dann versuch doch das ganze als Dämon laufen zu lassen.


----------



## thE_29 (10. Mai 2005)

Das ist egal, da der X11 nicht mehr connecten kann und somit die ganze App abschießt ;>

Super wäre es wenn man wenn das Programm läuft von dem normalen X11 auf den Xvfb changen kann und er somit weiterläuft...

Naja, muss mir das noch genauer ansehen, wenn ich was rausfinde melde ich


----------



## Stefan1200 (10. Mai 2005)

Kannst du nicht die Exception abfangen?
Oder quitted das Java Programm nicht mit einer Exception?


----------



## thE_29 (10. Mai 2005)

Das Programm hängt sich mit der Meldung auf




> XIO: fatal IO error 104 (Connection reset by peer) on X Server ":0.0"
> after 0 requests (0 known processed) with 0 events remaining.



Oder mit der Meldung:



> Xlib: connection to ":0.0" refused by server
> Xlib: No protocol specified
> 
> Exception in thread "main" in java.lang.InternalError: Can´t connect to X11 windowserver using ':0.0' as the value of the DISPLAY variable.
> ...



Und im SplashLoader auf 183 ist ein new JFrame das was am Anfang erzeugt wird...


----------



## Hansdampf (11. Mai 2005)

damit hab ich mich auch tagelang rumgeärgert, bis, ja bis.... tataaaaaaa:

java  *-Djava.awt.headless=true* -jar  myserver.jar 

hoffe das geht bei dir auch


----------



## thE_29 (11. Mai 2005)

Nope, dann geht die ganze App gar nima starten 

Hatte ich schon probiert, bevor ich den Thread aufgemacht habe 

Da kommt diese dann:



> Exception in thread "main" java.awt.HeadlessException
> at java.awt.GraphicsEnvironment.checkHealess(Unknown Source)
> at java.awt.Window.<init>(Unknown Source)
> at java.awt.Frame.<init>(Unknown Source)
> ...




Hast du nur eine konsolenApp oder benutzt du auch swing?


----------



## Hansdampf (11. Mai 2005)

Schade.

Ich benutze AWT.
Mein Server (also nicht das Programm) hat keine grafische Oberfläche, da kam auch immer dieser "Display.." Fehler.
Habe dann angefangen, alles grafische rauszunehmen, bis ich dieses tolle Flag entdeckte.


----------



## thE_29 (11. Mai 2005)

Mh, maybe geht das ja nur mit AWT!

Hast du den jetzt noch grafische Elemente drinnen oder nicht?


----------



## Hansdampf (11. Mai 2005)

alles drin.


----------



## thE_29 (11. Mai 2005)

Und das ist alles nur AWT??

Wie holst du dir das GraphicsScreenDevice?


----------



## Hansdampf (11. Mai 2005)

hö?
ich mach einfach ein Frame und pack alles rein.
Oder was meinst du?

edit: um mal Misverständnisse auszuräumen: die Elemente sind drin, werden aber nicht angezeigt, da ja eh kein Display vorhanden ist.
Vielleicht gibts ja ne Möglichkeit, das Headless aus-und einzuschalten. Glaub ich aber nicht,
sorry


----------



## thE_29 (11. Mai 2005)

Ich krieg wenn ich new Frame mache schon immer eine Headlessexception....

Welche JDK verwendest du?


----------



## Hansdampf (11. Mai 2005)

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)

ich glaub ich hatte anfangs auch Probleme mit anderen Versionen.
Nun geht alles, z.B. fröhlich Images aus Frames erzeugen und dyn. in HTML einbinden


----------



## thE_29 (11. Mai 2005)

Mh, geht bei mir auch mit java 5 net!

Ich muss mal kleine test apps schreiben und schaun obs so geht!


----------



## Guest (13. Mai 2005)

Hallo, 

ich suche jemanden, der mir nach Vorgaben ein J2ME-Programm für mein Händy schreibt. Wäre gerne dabei um zu sehen wie es in etwa funktioniert und wie das Programm auf mein Handy kommt. 

Am besten kommt derjenige aus der Nähe von Köln und kann dann zu mir in die Firma kommen. Oder er kommt aus dem Raum Aachen und kann zu mir nach Hause kommen. Das ganze natürlich nicht umsonst. Den Spaß würde ich mir schon EUR 10,-/Std. kosten lassen. 

Bei Interesse bitte Mail an world-on-the-web@web.de 

Beste Grüße an Alle 
Mario Pfeiffer


----------



## Hansdampf (13. Mai 2005)

na, das nenn ich großzügig. 10 euro, mit Anfassen oder ohne?
Ich glaub das hier ist der falsche Thread, oder spamst du einfach nur so rum?


----------

