实际上我有一个 java 程序。这将返回“Hello World”。我把它转换成jar文件。之后,我在 Windows XP 默认 sw 中使用 iexpress 将文件类型更改为 .exe。
我使用了 sc create 命令来创建新服务。我成功创建了windows服务。但问题是我无法运行它。它抛出以下错误。
此错误不仅针对此 javaservice。
我尝试将 chrome.exe 作为 Windows 服务运行,那次它也抛出同样的错误。
是windows的限制吗?还是我弄错了?期待解决方案,
提前致谢...
最佳答案
您不能直接指定任意 .exe 文件作为服务运行。服务必须使用特定的 API 函数来与服务控制管理器 (SCM) 交互。这就是您收到错误的原因 - 那些 .exe 文件没有使用这些 API 与 SCM 交互。
如果您不是专门为 SCM 交互编写代码(Java 不支持创建 Windows 服务),那么一切都不会丢失。在某些情况下(Chrome NOT 是其中之一!),您可以使用单独的包装器来托管非服务应用程序并代表它们处理 SCM 交互:
对于 Java 应用程序,有一些可用的包装器项目:
关于java - 如何制作自定义 Windows 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853977/