Как создать службу windows с winrun4j - PullRequest
3 голосов
/ 23 апреля 2011

Я читал документацию, но не могу запустить и остановить сервис.

Мой файл .ini:

main.class=test.TestService
service.class=test.TestService
service.id=StreamServer
service.name=StreamServer
service.description=Servidor que proporciona una comunicación con streams.
service.controls=stop   
classpath.1=*.jar

Класс TestService:

package test;

public class TestService{
    private static TestServer server;

    public static void main (String[] args){
        if (args.length == 1){
            if (args[0].equals ("start")){
                if (server == null){
                    server = new TestServer (5000);
                    server.start ();
                }
            }else if (args[0].equals ("stop")){
                if (server != null){
                    server.stop ();
                    server = null;
                }
            }
        }
    }
}

Мне нужно изменить этот класс, но я не знаю, как.

Спасибо.

1 Ответ

5 голосов
/ 23 апреля 2011

Взгляните на пример сервиса с главной страницы сайта winrun4j:

package org.boris.winrun4j.test;

import org.boris.winrun4j.AbstractService;
import org.boris.winrun4j.EventLog;
import org.boris.winrun4j.ServiceException;

/**
 * A basic service.
 */
public class ServiceTest extends AbstractService
{
    public int serviceMain(String[] args) throws ServiceException {
        int count = 0;
        while (!shutdown) {
            try {
                Thread.sleep(6000);
            } catch (InterruptedException e) {
            }

            if (++count % 10 == 0)
                EventLog.report("WinRun4J Test Service", EventLog.INFORMATION, "Ping");
        }

        return 0;
    }
}

Метод serviceMain вызывается при запуске вашей службы. Вы не должны возвращаться из этого метода, пока ваш сервис не будет готов к отключению. Также проверьте флаг «завершение работы» - для него будет установлено значение «true», когда вы нажимаете «Стоп» на панели управления службами (или когда необходимо остановить службу).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...