我有一个 spring boot 可执行 jar 文件,可以通过调用在任何命令提示符下运行java -jar filename.jar
。
我想创建一个服务,而无需为上述代码片段下载任何外部库。
如果有一条捷径,请帮助我。
答案1
我想创建一个无需下载任何外部库的服务
不。
根据定义,Windows 服务是其自己的二进制文件。
存在 svchost.exe 二进制文件,它代表“服务主机”,可以托管多个共享微软服务,但您无法与第三方服务共享。不支持。主要原因是一个服务中的崩溃或缺陷会影响共享 svchost.exe 实例中的所有服务。没有人愿意冒险将您的奇怪 Java 东西与共享 svchost 中的基本操作系统服务共享。
[参考]
在旧的 Win2000 时代,有一个“srvany.exe”二进制文件,但是它太旧了,太破旧了,2017 年应该没人会使用它了。
一个简单的谷歌搜索告诉我,存在这样的事情“Java 服务包装器” 或称为“Non-Sucking 服务包装器”...但这些都是独立的第三方二进制文件,不属于 Windows 的一部分,而且绝对不受 Microsoft 支持,因此对您的问题的答案仍然是“不”。
最重要的是,您需要自己的、非 Microsoft 提供的托管流程来托管您的奇怪服务。