java - 如何使用 winrun4j 创建 Windows 服务

标签 java windows-services

我一直在阅读文档,但我无法启动和停止服务。

我的 .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;
                }
            }
        }
    }
}

我必须修改这个类,但我不知道如何修改。

谢谢。

最佳答案

从 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 方法在您的服务启动时被调用。在您的服务准备好关闭之前,您不应从此方法返回。还要检查“关闭”标志 - 当您在服务控制面板中单击“停止”时(或者当您的服务需要停止时),这将被设置为真。

关于java - 如何使用 winrun4j 创建 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759561/

相关文章:

java - 如何获取当前时间 09 :04:15 instead of 9:4:15 when using Date?

Java LittleProxy(在 Netty 之上): How to access the POST Body data?

java - 创建一个从 F 转换为 C 的表,增量为 3

c# - Windows服务定时执行

c# - Windows 服务中的 Debug.WriteLine 到 OutputDebugString

windows - 我可以将 windbg 用作 Windows 服务的事后调试器吗?

c# - 如何使用 Visual Studio 为 .net Windows 服务创建安装程序

java - jsp中如何导入外部js文件

java - 如何拦截 session 结束并获取属性?

windows - PowerShell:按可执行名称重启服务