我正在编写一个实用程序来启动和停止Windows服务。该程序将分布在许多具有不同级别用户权限的计算机上,因此我不想使用命令行。我已经使用JNA试过,使用JNA启动/停止服务
import com.sun.jna.platform.win32.W32Service;
import com.sun.jna.platform.win32.W32ServiceManager;
import com.sun.jna.platform.win32.Winsvc;
/**
*
* @author
*/
public class WindowsServices {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try
{
// TODO code application logic here
W32ServiceManager serviceManager = new W32ServiceManager();
W32Service service = serviceManager.openService("uvnc_service", Winsvc.SERVICE_ACCEPT_STOP);
service.stopService();
service.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
当我运行程序我碰到下面的错误
com.sun.jna.platform.win32.Win32Exception:句柄无效。 在com.sun.jna.platform.win32.W32ServiceManager.openService(W32ServiceManager.java:77) 在windowsservices.WindowsServices.main(WindowsServices.java:26)
任何建议将是最有帮助的。
这很酷,不知道你可以用JNA轻松控制Windows服务。 – tmbrggmn
我用这种方法发现的唯一问题是,当您尝试停止服务时,必须提供额外的try/catch块,因为某些服务需要一段时间才能从运行停止。 – GEverding
您好!添加答案作为有效答案 – gavioto