Starten eines Javaprogrammes mit grafischer Oberfläche von einem Dienstprogramm

AndraW

Grünschnabel
Hallo,

ich habe mal eine Frage, wo ich denke, dass es sicher eine Antwort zu gibt ;)

das Problem ist folgendes:

ich habe ein Java-Programm erstellt, welches eine grafische Oberfläche hat. Und ein Java-Programm, welches als Windows-Service (im Hintergrund, also unsichtbar) läuft. Das Service-Programm soll nun das Desktop-Programm starten, sobald das Service-Programm startet. (Und später das Desktop-Programm neu starten, falls es aus irgendeinem Grund nicht mehr reagiert).

Soweit funktioniert es, dass das Service-Programm das andere Programm startet, und das andere Programm arbeitet auch danach ordnungsgemäß, was ich anhand der erzeugten Logdateien nachvollziehen kann.

Das Problem nun ist allerdings, dass das Desktop-Programm unsichtbar gestartet wird, und unsichtbar läuft. Also anders ausgedrückt, es öffnet nicht die normale grafische Oberfläche des Programmes, was nur dann der Fall ist, wenn das Desktop-Programm alleine manuell gestartet wird.

Kann mir jemand helfen, und mir sagen, wie ich es erreiche, dass das Desktop-Programm mit grafischer Oberfläche startet, wenn es vom Service-Programm gestartet wird? Ich starte es mit dem Befehl Runtime.getRuntime().exec(java -jar Programmpfad.jar).
 

AndraW

Grünschnabel
Es ist kein Framework, wurde selbst erstellt.

Wenn ich das Service-Programm unter Dienste so einstelle, dass es unter "Anmelden als" Lokales Systemkonto und die Checkbox "Datenaustausch zwischen Dienst und Desktop zulassen" aktiviere, dann werde ich mit einer Windows-Message begrüßt, die mir dann sagt, dass eine Anwendung meine Aufmerksamkeit benötige. Sage ich dann, dass ich das zulasse, dann wird in eine andere Desktop-Ebene geswitcht und ich kann mein anderes Programm korrekt sehen. Sobald ich dann wieder sage ich will zurück, komme ich auf meine normale Desktop-Oberfläche, und mein Programm ist wieder unsichtbar im Hintergrund.

Genau das soll so aber nicht sein, dass das Programm im Hintergrund läuft. Daher suche ich eine Lösung wie man, ähnlich dem oben beschriebenen Effekt - nur ohne Desptop-Oberfläche zu switchen, das Programm aus dem Dienst heraus sichtbar starten kann.