java中使用cmd一定要在执行命令中加上类似cmd /c这样的命令,不然执行不了。
public static boolean NginxIsRunning(){
boolean flag=false;
//查看nginx8080端口号是否启动 必须加 cmd /c这样的前缀
String cmd="cmd /c netstat -ano |findstr \"8080\"";
BufferedReader br=null;
Process process=null;
try {
//执行cmd命令
process=Runtime.getRuntime().exec(cmd);
//获取cmd命令的输出结果
br=new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder str= new StringBuilder();
String tmp;
while ((tmp= br.readLine())!=null){
str.append(tmp).append("\n");
}
process.waitFor();
//检查是否含有nginx的启动项
if (str.indexOf("LISTENING")!=-1&&str.indexOf("8080")!=-1)
flag=true;
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}finally {
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (process != null) {
process.destroy();
}
}
return flag;
}