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. LaTeX 课本、LaTeX 学习方法、LaTeX 入门(2)

    1. 关于TeX,LaTeX,MikTex,CTeX等的区别 2. 课本 课本1 >> 下载链接:复制链接到迅雷或IDM下载很快 课本2 >> 下载链接:复制链接到迅雷或IDM ...

  2. T-SQL学习笔记

    学习T-SQL时记录的笔记,记得并不全也不详细 if和while语句 declare @age int select @age = DATEDIFF(year,stuAge,getdate()) fr ...

  3. go String方法的实际应用

    让 IPAddr 类型实现 fmt.Stringer 以便用点分格式输出地址. 例如,`IPAddr{1,`2,`3,`4}` 应当输出 `"1.2.3.4"`. String() ...

  4. Linux权限管理:setUID、setGID 和 Sticky BIT

    1.setUID.setGID 和 Sticky BIT 的功能详解 setuid 功能: 1.只有可执行的二进制文件程序才能设定 SUID 权限(前提) 2.命令执行者要对该程序有执行(x)权限(必 ...

  5. Spring Cloud Alibaba学习笔记(4) - Feign配置与使用

    什么是Feign Feign是一个声明式Web Service客户端. 使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX- ...

  6. 杭电1253 超时的bfs...

    #include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>usin ...

  7. .NET Core 使用swagger进行分组显示

    其实,和swagger版本管理类似;只是平时接口太多;不好供前端人员进行筛选. 下面进入主题: 首先: //注册Swagger生成器,定义一个和多个Swagger 文档 services.AddSwa ...

  8. C#基础加强笔记

    1面向对象 类:包含字段.属性.函数.构造函数 字段:存储数据 属性:保护字段 get set 函数:描述对象的行为 构造函数:初始化对象,给对象的每个属性赋值 面向对象的好处:让程序具有扩展性 类决 ...

  9. iOS - 苹果官方Apple Pay开发文档(中文版)- Apple Pay(1)

    翻译自苹果官方Apple Pay开发文档.目前版本为1.0 概览: Apple Pay为用户从你的App里购买实际的物品和服务提供简单而安全的方法.通过Touch ID,用户可使用储存在iPhone ...

  10. vue中组件之间的通信

    一.vue中组件通信的种类 父组件向子组件的通信 子组件向父组件的通信 隔代组件之间的通信 兄弟 组件 之间的通信 二.实现通信的方式  props vue自定义的事件 消息订阅与发布 vuex sl ...