之前项目写的Windows服务需要集成到B/S架构系统中去,方便用户的操作。用到的函数是Runtime.getRuntime().exec()。
实现如下:
Process process = Runtime.getRuntime().exec("sc query AzureStorageService");//查询服务是否安装
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));//注意中文编码问题
String temp = "",result="";
while ((temp=bufferedReader.readLine())!=null){
result += temp;
}//result结果中判断服务是否存在
bufferedReader.close();
inputStream.close();Process process = Runtime.getRuntime().exec("tasklist /svc");//列出服务列表判断服务是否启动
String temp = "",result="";
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));//注意中文编码问题
while ((temp=bufferedReader.readLine())!=null){
result += temp;
}
bufferedReader.close();
inputStream.close();
直接执行.bat文件
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/");
String command = path + "startup.bat";
Process process = Runtime.getRuntime().exec(command,null,new File(path));//到指定目录执行
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));//注意中文编码问题
String temp = "",result="";
while ((temp=bufferedReader.readLine())!=null){
result += temp;
}
bufferedReader.close();
inputStream.close();
本文介绍如何在Java中检查和控制Windows NT服务。通过使用Runtime.getRuntime().exec()方法,可以实现对.bat文件的调用来操作服务的安装和启动状态。
994

被折叠的 条评论
为什么被折叠?



