Search code examples
windows-serviceswindows-server-2008java-ee-6

Programmatically Stopping a Windows Service from a Web App


I have a web application running in a GlassFish 3.1 service on Windows 7 and Server 2008. I would like this application to be able to control a number of other services on the same machine. In particular I want it to be able to start and stop Tomcat services.

Essentially the application is acting as a controller for other applications I deploy on the machine so I can set any security necessary on the controlled applications.

I notice that .Net has a ServiceController class so I'm assuming that programmatic control is possible but I would very strongly prefer a pure Java solution if possible.

All the searches I've done turn up a lot of information about running Java as a service and not much on controlling services from Java. Is what I'm trying to do possible? What security hoops will I need to jump through?


Solution

  • You can do Runtime.exec("net stop tomcat6"). Of course tomcat6 can be replaced with any other service name. Also check out this tutorial http://www.java-samples.com/showtutorial.php?tutorialid=8