package lct.conference.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class Test3 {
public static void main(String[] args){
String[] cmdStr = { "cmd", "/C", "wmic /node:\"192.168.0.34\" /user:\"administrator\" /password:\"12345\" service get /value" };
List<Map<String, Object>> list = null;
try {
list = getAllResult(cmdStr, 25);
System.out.println(list.size());
JSONArray jr = JSONArray.fromObject(list);
JSONObject jo = new JSONObject();
for(int i=0;i<list.size();i++){
jo.clear();
jo=(JSONObject) jr.get(i);
if("Apache Tomcat".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "Apache Tomcat服务"+ifStarted);
}else if("MySQL".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "MySQL服务"+ifStarted);
}else if("PCMS Service".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "PCMS Service服务"+ifStarted);
}else if("PCMS Watch Service".equals(jo.get("Caption"))){
String ifStarted = jo.get("Started").toString();
System.out.println( "PCMS Watch Service服务"+ifStarted);
}
}
System.out.println(list);
} catch (IOException e) {
e.printStackTrace();
System.out.println( "获取所有服务信息失败!");
}
}
private static List<Map<String, Object>> getAllResult(String[] cmdStr, int flag) throws IOException {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Integer index = 1;
Process p = null;
String str = null;
String[] arrStr = new String[2];
Map<String, Object> map = new HashMap<String, Object>();
InputStreamReader isr = null;
BufferedReader br = null;
try {
p = Runtime.getRuntime().exec(cmdStr);
isr = new InputStreamReader(p.getInputStream(),"GBK");
br = new BufferedReader(isr);
while ((str = br.readLine()) != null) {
if (str!=null && !"".equals(str)) {
if (index % flag == 0) {
list.add(map);
map = new HashMap<String, Object>();
}
arrStr = str.split("=");
str = str.endsWith("=") ? "" : arrStr[1];
map.put(arrStr[0], str);
index++;
}
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("获取进程的所有信息失败!");
throw e;
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取执行结果失败!");
} finally {
try {
if (br != null) {
}
br.close();
if (isr != null) {
isr.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if (p != null) {
p.destroy();
}
}
return list;
}
}

java获取远程服务器应用程序服务状态的更多相关文章

  1. JAVA本地远程连接linux程序监控状态

    环境:  1.本地window 2.程序部署在centos   一,启动访问权限安全守护程序 新建文件:jstatd.all.policy ,注意路径 grant codebase "$JA ...

  2. 使用nodejs和Java访问远程服务器的服务

    既然这篇文章用的是nodejs和Java访问远程服务器的服务,那么咱们先用另一门编程语言,SAP的ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧. 这是我用ABAP编程语言实现服务的类:Z ...

  3. Windows系统中使用WMI获取远程服务器的信息

    使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...

  4. Java获取Web服务器文件

    Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...

  5. 使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态

    今天在提交 APP 审核版本的时候iTunes Connect 一直获取不到应用程序的状态,原因是,14号 xcode 8一出 直接升级使用 xcode 8 打包发布包,然后直接用 xcode8 构建 ...

  6. C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径

    C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...

  7. C# 获取当前服务器运行程序的根目录

    C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...

  8. java ssh远程服务器并执行多条shell命令

    java ssh远程服务器并执行多条命令 import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...

  9. Java 程序检查远程服务器状态

    通常我们以命令的方式判断远程服务器是否正常运行有两种方式,ping 或 telnet 一个远程端口.假设我们要检查的远程服务器都是 Linux 系统. 从 JDK 1.5 以后, InetAddres ...

随机推荐

  1. Python基础 — 八种数据类型

    Python 3.x 的八种数据类型 八种数据类型分别是: number(数字).string(字符串).Boolean(布尔值).None(空值) list(列表).tuple(元组).dict(字 ...

  2. Istio流量管理能力介绍

    1      Istio是什么? Istio 1.0版本于8月1号凌晨准点发布,核心特性已支持上生产环境,各大微信公众号.博客纷纷发文转载.那么Istio到底是什么?能解决问题什么? 1. Istio ...

  3. Java连接Jira,创建、修改、删除工单信息

    还不了解Jira是什么的同学可以看一下这篇文章:https://www.cnblogs.com/wgblog-code/p/11750767.html 本篇文章主要介绍如何使用Java操作Jira,包 ...

  4. print函数用法总结

    输出print函数总结: 1,字符串和数字类型 2,变量(数值,布尔,列表,字典) 3,格式化输出 格式化输出总结: (1)%:标记转换说明符的开始 (2)转换标志: - 表示左对齐:+ 表示在转换值 ...

  5. 【转载】腾讯云安全组如何开放3306端口让Mysql可访问

    Mysql数据库的默认端口号为3306,在服务器安装好Mysql数据库后,如果使用的服务器是阿里云或者腾讯云服务器,如果在后台启用了安全组功能,则需要在安全组中对3306端口的入站规则进行放行,只有在 ...

  6. QuickJS 快速入门 (QuickJS QuickStart)

    1. QuickJS 快速入门 (QuickJS QuickStart) 1. QuickJS 快速入门 (QuickJS QuickStart) 1.1. 简介 1.2. 安装 1.3. 简单使用 ...

  7. TensorFlow实现Softmax Regression识别手写数字

    本章已机器学习领域的Hello World任务----MNIST手写识别做为TensorFlow的开始.MNIST是一个非常简单的机器视觉数据集,是由几万张28像素*28像素的手写数字组成,这些图片只 ...

  8. Qt定时器

    PS: 本案例使用的是Qt 4.8.4版本,不同版本代码可能会有差异. 第一步: // 重写此虚函数(继承自QObject) virtual void timerEvent(QTimerEvent* ...

  9. iOS testflight 使用说明

    一.告知开发者苹果手机的账户邮箱 1.通过任何形式告知即可 2.下载testflight 二.开发者发送激活邮件到测试者的账户邮箱 1.进入邮箱查看邮件点击 Accept invitation 进行下 ...

  10. Powershell-获取Hyper-V复制状态

    Get-VM | Select-Object name,ReplicationHealth