java启动dos命令收集信息笔记一
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.testng.annotations.Test;
public class Person {
@Test //使用testng作为入口
public void doscmd() throws InterruptedException
{
System.out.println(System.getProperty("os name")); //判断当前系统
Person p = new Person();
List<String> dL = p.excmd("adb devices"); //调用函数执行adb devices命令
System.out.println(dL.size());
for (String s:dL) { //通过增强for循环输出内容。 s--定义变量,dl--为adb devices内容
System.out.println(s); //输出显示
}
}
public List<String> excmd(String cmdString) throws InterruptedException {
List<String> dosCMd = new ArrayList<String>(); //定义一个List集合
Process process = null; //定一个Process ID号
try {
process = Runtime.getRuntime().exec(cmdString); //通过内置函数启动exec命令
InputStream in = process.getInputStream(); //通过输出流输出
BufferedReader inR = new java.io.BufferedReader(new InputStreamReader(in));
String line = null;
while((line = inR.readLine()) != null) //通过while遍历命令行信息
{
dosCMd.add(line);
}
System.out.println("成功取出");
} catch (IOException e) {
System.out.println("数据不能获取");
e.printStackTrace();
}
process.waitFor();
process.destroy();
return dosCMd;
}