java - 如何制作自定义 Windows 服务?

标签 java windows jar windows-services exe

实际上我有一个 java 程序。这将返回“Hello World”。我把它转换成jar文件。之后,我在 Windows XP 默认 sw 中使用 iexpress 将文件类型更改为 .exe。

我使用了 sc create 命令来创建新服务。我成功创建了windows服务。但问题是我无法运行它。它抛出以下错误。

enter image description here

此错误不仅针对此 javaservice。

我尝试将 chrome.exe 作为 Windows 服务运行,那次它也抛出同样的错误。

是windows的限制吗?还是我弄错了?期待解决方案,

提前致谢...

最佳答案

您不能直接指定任意 .exe 文件作为服务运行。服务必须使用特定的 API 函数来与服务控制管理器 (SCM) 交互。这就是您收到错误的原因 - 那些 .exe 文件没有使用这些 API 与 SCM 交互。

如果您不是专门为 SCM 交互编写代码(Java 不支持创建 Windows 服务),那么一切都不会丢失。在某些情况下(Chrome NOT 是其中之一!),您可以使用单独的包装器来托管非服务应用程序并代表它们处理 SCM 交互:

Service wrapper

对于 Java 应用程序,有一些可用的包装器项目:

Java Service Wrapper

Yet Another Java Service Wrapper

ow2

关于java - 如何制作自定义 Windows 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853977/

相关文章:

java - JAR list 类路径,使用文件夹而不是 jar

java - 将 OSGI 项目打包为一个 jar?

Java 并发 : Countdown latch vs Cyclic barrier

java - 使用 Java 8 在一行中构建一组 Node.Leaf.Id

java - 如何从 Java Mac Os X 应用程序包打印堆栈跟踪

ruby-on-rails - 如何在 Ruby 中使用 RSpec 通过 Windows 命令提示符获取颜色?

python - 适用于 Windows 的 gstreamer python 绑定(bind)

java - 为什么 List<generic> 在 mybatis 与 java 的情况下不起作用?

html - 获得 SSL,现在所有请求的文件都被阻止(混合内容)

java - 通过 C++ 程序修改 .JAR 文件?