2017-09-07 17 views
0

私はGUIを使ってJavaアプリケーション(クライアントアプリケーションのサーバーとして動作)を持っています。このアプリケーションは、サーバーの再起動後も常に実行する必要があります。JavaアプリケーションをWindowsサービスとして実行

この目的でApacheデーモンを使用してWindowsサービスを作成しました。

サーバーが起動すると、サービスがシステムサービスとして実行されているのがわかります。しかし、アプリケーションのGUIを開くと別のインスタンスが起動します。

再起動後に起動した同じインスタンスにGUIを追加する必要があります。これは可能です。

+0

どのようにGUIを開きますか?アイコンをクリックすると – Stultuske

+1

AFAIKサービスにはGUIがありません - 実行中のサービスに接続するためのGUIが必要です(例えばソケット経由) – MadProgrammer

+0

はいアイコンをクリックしてGUIを開こうとしています –

答えて

1

WindowsデスクトップやKDE、Gnomeなどのウィンドウ管理システムなしで起動するため、Windowsサービス(Unixシステムのデーモンと同様)はGUIで実行できません。私は実際にあなたのアプリケーションGUI要素を起動しようとするとエラーが発生するため、サービスとして開始します。

GUIをサーバーコンポーネントから分離する必要があります。 GUIは次に、何らかのプロトコルによってサーバと通信する必要があります。すでにアプリケーションを完成させているので、RMIを実装するのが最も簡単であるはずです。実装するのが最も簡単なのは、クラスにいくつかのインターフェイスを追加して、複雑なレイヤーを追加するのではなく、 own(クライアントからコマンドを受け取るための追加のサーバーなど)。

RMIはローカルホストからの接続だけをリッスンするように設定できるため、セキュリティの面でも優れているはずです。

+0

Windowsでは、サービスはGUI要素;彼らはユーザーと対話できません。 Windowsは必要に応じてダミーの表示面を作成します。 –

+0

この場合、再起動時にGUI自体を起動することは可能ですか?私はそれが起動時に可能であると理解していますが、起動するにはユーザーログインが必要です。 –

関連する問題