如何通过Windows命令行中的sc.exe创建服务时传递参数给可执行文件

3
我试图使用sc.exe创建一个服务,在Windows上使用swarm jar文件连接jenkins从节点到主节点。
我使用以下命令创建服务: sc create jenkins-slave binPath= "java -jar C:\swarm-client-3.3.jar -master jenkins_master_url -username myuser -password mypass" start= auto 但是,当我启动该服务时,它会给出一个错误,系统找不到指定的文件。
我尝试将整个命令放入批处理文件中并尝试创建服务,但没有成功。我的疑问是是否可以在可执行文件中传递参数。如果不行,是否有其他更好的方法?
非常感谢您的帮助!
1个回答

0

我建议您首先将.jar文件及相关命令转换为.exe文件。

您可以使用Launch4j(http://launch4j.sourceforge.net/)工具直接在Windows上进行操作(它也可以在Linux上运行,但更难以获得兼容的可执行文件)。这是一个图形化工具,通过传递包含所有依赖项(之前构建的)的.jar存档文件,让您可以获得准备好使用的.exe文件。

然后,您可以测试生成的文件,启动它并查看其是否在正在运行的服务列表中。


2
现在是2019年了。因为服务的默认工作目录恰好是Windows系统目录,所以将随机可执行文件复制到其中绝对不是正确的做法。 - Damien_The_Unbeliever

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接