Запустите консольное приложение Java в качестве демона (фон) - PullRequest
7 голосов
/ 24 июня 2011

Я разработал консольное приложение Java, которое при запуске открывает окно консоли и остается на переднем плане, я хочу запустить это приложение в фоновом режиме.

Теперь я запускаю приложение с помощью следующей командной строки:

java -jar myapp.jar

Есть ли способ добиться такого поведения?Достаточно изменить параметр командной строки или мне нужно внести некоторые изменения в мой код?

Ответы [ 4 ]

13 голосов
/ 25 июня 2011

Ответ зависит от операционной системы.

*nix: <your command> &
Windows: (opens a new console): start <your command>
Windows: (doesn't open a new console): start /b <your command>
6 голосов
/ 25 июня 2011

Если вы делаете это на чем-нибудь, основанном на Unix, то вы можете добавить & в конец, который создаст новый поток и сохранит его работающим в фоновом режиме.

java -jar myapp.jar &
4 голосов
/ 25 июня 2011

Если вы действительно хотите, чтобы он работал в фоновом режиме, java -jar myapp.jar & выполнит эту работу. Таким образом, он все равно умрет, когда оболочка закроется, но вы можете продолжать использовать ее.

Если вы действительно хотите, чтобы он запускался как демон, nohup java -jar myapp.jar & выполнит эту работу. Таким образом, он будет продолжать жить, когда оболочка закроется.

Если вы хотите, чтобы это было надежно, вы можете подготовить сценарий инициализации или определение задания upstart , или запустить его через спецификатор Vixie cron(8) @reboot, чтобы запустить его при загрузке.

3 голосов
/ 25 июня 2011

Учитывая, что вы используете Windows, вы можете рассмотреть Java Service Wrapper .Я использовал его в проекте в прошлом.

...