我知道如何使用 BAT文件(以及linux / unix中的.sh文件)从Java程序启动/停止Tomcat。这是这样做的:
String command = "c:\program files\tomcat\bin\startup.bat";//for linux use .sh
Process child = Runtime.getRuntime().exec(command);
注意:使用 CATALINA_HOME 使此代码更具动态性。
现在我正在寻找一种从Java程序启动/停止Tomcat的 Windows服务的方法。我的意思是,我想从Java启动/停止Tomcat,就像我进入控制面板 - > 管理工具 - > 服务。 可以这样做,还是使用 BAT文件是我们可以做的最大值?
我看到问题start windows service from java,但当我用“sc”尝试时,process.isAlive()
总是 false
当我用“net”代替“sc”然后process.isAlive()
总是true
,即使我使用serviceName = "aliceinwonderland"
。我使用的代码示例:
//String servicename = "Dhcp"; // real service that exists and started.
String serviceName = "aliceinwonderland"; // fiction, no such service
//String[] script = {"cmd.exe", "/c", "sc", "query", serviceName, "|", "find", "/C", "\"RUNNING\""};
String[] script = {"cmd.exe", "/c", "net", "query", serviceName, "|", "find", "/C", "\"RUNNING\""};
Process process = Runtime.getRuntime().exec(command);
boolean alive = process.isAlive(); // using "sc" = false; using "net" = true
答案 0 :(得分:0)
您可以使用sc
中的Windows服务控制器(cmd.exe
)命令,如下所示:
String[] script = {"cmd.exe", "/c", "sc", "start", "Tomcat8"};
Runtime.getRuntime().exec(script);
如果已安装Tomcat服务并命名为Tomcat8
,则提供此功能。您可以查看安装说明here。