2012-03-12 10 views
4

私たちはplay!を使って小さなアプリを開発しました。ユーザーがネットワークにアクセスできないので、ユーザーのコンピュータ(Windows XPまたはWindows 7)でスタンドアロンで実行されます。現在、コンソール/コマンドウィンドウ内で実行されます。私は、プレイが実行されているタスクバーにコンソールウィンドウがないようにしたいと思っています - 本当に、主にユーザーがウィンドウを閉じる傾向があるためです。私はいくつかのアイデアを思いついたが、いくつかのバリデーションやその他のアイデアを期待していた。再生! JARまたはサービスとしてデプロイされたフレームワーク

最初に、私はJavaを実行することを考えていました。これは通常、Javaを実行するGUIアプリケーションのために実行されるものですが、何が実行されますか?私は、プレイのWAR出力でWinstoneサーブレットコンテナを実行できると思います! (以下の他のstackoverflow質問への解決策として言及されている)。

第2に、私はWindowsサービスでそれをラップしようと考えていました。

この質問は(私はフレームワークを解凍する必要プレーを!インストールする気にしない)似ていますが若干異なります。 Deploy Play! application as executable jar

誰もがこれらの技術のいずれかを使用していた、またはより良い方法があります?長所/短所/例?

ありがとうございます!


更新:Winstoneに関するコメントはありますか?セキュリティ上の制約のため、サービスやスケジュールされたタスク(SYSTEMとして)を簡単に作成することはできません。再度、感謝します。

+0

似たような[質問/回答](http://stackoverflow.com/questions/12120489/how-do-i-run-a-play-framework-2-0-application-as-a-windows- yajswのアプローチについても説明しています。 –

答えて

2

私はいくつかのアプリケーションで同様のことをしました。私が実行した手順は、

  1. です。再生アプリケーションを起動するバットファイルを作成します。 play runまたはplay start
  2. システム起動時に実行するスケジュールされたタスクを作成し、ユーザープロファイルとしてSYSTEMを使用してコマンドを実行します。

このアプローチは、私の内部システムでは1年以上も働いています。

+0

ええ、私たちは実際に開発環境でこのようなことを試していましたが、ターゲット環境でスケジュールされたタスクをシステムとしてセットアップすることはできません。 –

2

また、yajswを使用して、再生アプリケーションをWindowsサービスとしてラップすることもできます。それは本当にうまく動作し、セットアップが簡単です。

私が遭遇した唯一の問題は、Windows Server 8 R2上で実行されている自分のボックスで、スケジューラが起動したときにジョブの一部が重複してしまうことです。私はそれがyajwsに直接関連しているとは確信していないし、私は同じセットアップで他の環境でエラーを再現することができませんでした。

私はdoJobメソッドで同期ブロックを追加することで対処できました。 遊びでyajwsを設定するための情報については、hereをご覧ください。

0

再生がwinstoneで動作するかどうかはわかりません。演劇で働くことが知られているアプリケーションサーバのリストは、hereで見つけることができます。

遊戯アプリケーションにはplay war myapp -o myapp.warと戦う必要があります。

+0

それは良い点です。それらのうちのいくつかはJavaベースであり、javawでかなり簡単に実行できると思います。私はJettyに試してみましょう。 –

0

「再生実行」を実行するバッチファイルと、「start/B runPlay.bat」をシステムコールとして呼び出す実行可能なJARを作成しました。この方法では、コンソールウィンドウはまったく起動しません。それはこれまでのところ素晴らしいです。さまざまな解決策があるようですが、これはかなり簡単でした。

関連する問題