我想创建一个运行我的 Java 应用程序的 Windows 服务。
使用这没有问题
sc.exe create myService binPath= "java -jar C:\to\my\service.jar"
当我尝试启动我创建的服务时,我收到以下响应:
错误1053:服务没有响应启动或控制
及时请求
不幸的是,我的程序似乎没有响应它正在运行的 Windows 服务。
我如何与我的程序运行的 Windows 服务进行通信?
I tried NSSM https://nssm.cc/效果很好。但我不想使用其他第三方应用程序。
当我搜索答案时,我总是发现大多数人使用Java 服务包装器 https://wrapper.tanukisoftware.com/doc/german/download.jsp.
如何构造我的 Java 代码以接受来自 Windows 服务的消息?
这是一个时间打印程序的简单示例,我想将其作为服务运行。我需要做什么?
package tst;
import java.util.Date;
public class Tester
{
public static void main(String[] args)
{
Thread thread = new Thread()
{
public void run()
{
long start = System.currentTimeMillis();
long end = start + 20 * 1000;
while (System.currentTimeMillis() < end)
{
Date date = new Date();
System.out.println("Time: " + date.toString());
try
{
Thread.sleep(5000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
};
thread.start();
}
}
除非您的应用程序实现了与交互所需的接口Windows 服务控制管理器 (SCM) https://msdn.microsoft.com/en-us/library/windows/desktop/ms685150(v=vs.85).aspx,您将无法启动、停止或操作您的应用程序作为服务。您唯一的选择是使用 NSSM、JSW 等服务包装器,甚至是 Microsoft 的旧但仍然可用的服务包装器服务实用程序 https://www.coretechnologies.com/WindowsServices/FAQ.html#WhatIsSrvany.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)