我想在windows中注册该服务,并且在注册后也要启动。
在代码::
中使用以下命令cmd.exe /C sc create "<service name>" binpath="D:\\abc\\xyz.exe -zglaxservice xyz"
我通过runtime.exec()
执行上述命令。
运行代码后,它会提供sc命令的帮助。
代码::
Process proc = null;
String[] cmdStr = new String[] { "cmd.exe","/C","sc", "create", "\""+servicename+"\"", "binpath= \"D:\\SCCode\\"+exeName+".exe -zglaxservice "+laxName+"\"" };
proc = Runtime.getRuntime().exec(cmdArr);
请帮忙......
答案 0 :(得分:0)
命令的两个问题
cmd.exe /C sc create "" binpath="D:\abc\xyz.exe -zglaxservice xyz"
所以正确的命令如下:
cmd.exe /C sc create "ServiceName" binpath= "D:\abc\xyz.exe -zglaxservice xyz"
我发现你做了一些修改,虽然你的命令行字符串仍然不正确(缺少几个空格)。正确的一个如下:
String[] cmdStr = new String[] { "cmd.exe ","/C ","sc ", "create ", "\""+servicename+"\"", " binpath= \"D:\\SCCode\\"+exeName+".exe -zglaxservice "+laxName+"\"" };
我在上面尝试了,我的问题是
'"sc "' is not recognized as an internal or external command
如果你的java没有在管理模式下运行,那么sc命令需要你的cmd命令在管理模式下运行。
如果您遇到同样的问题,请查看以下链接:
答案 1 :(得分:0)
此解决方案对我有用:
cmd.exe /C sc create "cdfa$" binpath= "F:\Connect_Direct\Sterling Commerce\FileAgent\cdfa$.exe -zglaxservice cdfa$"