2011-06-24 17 views
6

私はJavaコンソールアプリケーションを開発しました。コンソールアプリケーションを起動してコンソールウィンドウを開いてフォアグラウンドにしておくと、バックグラウンドでそのアプリケーションを起動します。 Javaコンソールアプリケーションをデーモン(バックグラウンド)として実行

は、今私は、このコマンドラインでアプリケーションを起動します。この動作を達成するための方法は

java -jar myapp.jar 

ありますか? コマンドラインパラメータを変更するだけで十分です。コードに変更を加える必要がありますか?

+0

質問が不明です。 Windowsサービスとして実行しますか?または、コンソールウィンドウが必要ですか?または両方? –

+1

どのオペレーティングシステムでこれを実現したいですか? – Marcelo

+0

私はWindows上にあり、Windowsサービスは素晴らしいソリューションになる可能性があります。 JavaコンソールアプリケーションをWindows ServicEとして実行する方法はありますか? – aleroot

答えて

12

答えはオペレーティングシステムによって異なります。

*nix: <your command> & 
Windows: (opens a new console): start <your command> 
Windows: (doesn't open a new console): start /b <your command> 
6

これをUnixベースの何かでやっているのであれば、最後に&を追加すると新しいスレッドが生成され、バックグラウンドで実行されます。

java -jar myapp.jar & 
4

あなたが本当にちょうどそれがバックグラウンドで実行したい場合は、java -jar myapp.jar &は仕事を行います。そうすれば、シェルが終了してもまだ死ぬでしょうが、シェルを使い続けることができます。

実際にデーモンとして実行する場合は、nohup java -jar myapp.jar &がそのジョブを実行します。そうすれば、シェルが閉じたときも引き続き生き続けるでしょう。

信頼できるようにするには、initスクリプト(upstart job definition)を用意するか、Vixie cron(8)@reboot指定子で起動して起動時に起動させることができます。

+0

これは、UnixまたはLinuxマシンであり、Windowsではないことを指摘したいだけです。 – Kalyan

3

Windowsを使用しているとすれば、Java Service Wrapperと考えることができます。私は過去にこのプロジェクトに使ってきました。

+3

さらに、コンソールウィンドウなしでプログラムを実行する "java"ではなく "javaw"を実行できます。これは、通常、GUIベースのJavaプログラムを実行する方法です。 http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html – Jim

関連する問題