2013-05-09 2 views
5

Я просмотрел множество различных вопросов StackOverflow и статей на других сайтах, но ни у кого из них нет именно то, что я ищу.Как сделать программу Java запущенной в фоновом режиме?

То, что я пытаюсь сделать:

У меня есть программа, которая должна спать на некоторое время, а затем проверить, чтобы убедиться, что программа все еще работает, то спать снова. Я получил эту часть, сделанную всеми прекрасными и денди, но я столкнулся с проблемой, которая заставляла ее работать в фоновом режиме. Я пытаюсь запустить его без системного трея, без окна командной строки, просто процесс. Есть ли способ сделать это? Меня действительно раздражает необходимость открытия окна командной строки 24/7 для программы, такой простой, как этот, и если кто-то может помочь, это будет здорово!

(Также обратите внимание, что я не говорю о компиляции из командной строки, я говорю, после того как вы откроете версию java-программы .exe, как вы можете заставить ее открыть exe без окна командной строки или GUI)

Спасибо!

EDIT: Да, я запускаю Windows, и эта программа будет работать только на ОС Windows.

+0

1-й хит: http://www.coderanch.com/t/370721/java/java/run-Java-program-background –

+0

Какая ОС вы используете? Окна? – Joel

+0

Я думаю, что вы можете запустить программу как сервис Windows. – shuaqiu

ответ

0

Посмотрите на javaw, которая поставляется с JRE

+0

У вас есть ссылки на javaw? Я читал, что в одном из моих результатов Google, но каждый поиск для него просто содержит дерьмо, например «Что такое javaw.exe», «javaw.exe вреден?» «как закончить javaw.exe» и т. д. – N01zii

+1

Почему вы не читаете документацию Java на сайте Oracle? http://docs.oracle.com/javase/7/docs/ –

0

Выполнить этот скрипт VBS из планировщика задач:

Set Shell = CreateObject("WScript.Shell") 
Shell.CurrentDirectory = "C:\Users\myuser\mylib" 
Shell.Run "java.exe MyClass", 0, False 
+0

Мне немного любопытно, почему это было отклонено, так как оно работает очень хорошо. –

+0

Я тоже. Решение выше кажется тупым. –

4

Что вы хотите это программа-демон. Windows-эквивалент демона - это служба Windows.

Таким образом, одним из решений является запуск вашей программы в качестве службы Windows. Очень просто преобразовать программу java командной строки в службу с ProcRun. Я только что сделал это на прошлой неделе с конкретной программой, которую я провел - занял около полудня, главным образом потому, что это был первый раз, когда я это делал.

Предоставление службе Windows имеет то преимущество, что вы можете настроить ее для автоматического запуска при загрузке машины.

+0

Что делать, если я хочу сделать это с базой ОС Linux? как я могу это сделать? –