Java根据端口范围关闭Appium服务
1、问题概述?
在开发中我们需要关闭对应的appium服务。
有时候,程序会自动开启很多的appium server,我们不能够一次都关闭了,而是需要关闭对应的appium Server。
这个时候,我们就可以通过端口关闭对应的appium服务。
2、问题—我怎么知道那个工程对应的端口号呢?
这其实就是一个设计的问题了
比如规定:工程1使用的端口范围是1001-1010
工程2使用的端口范围是1011-1020
3、Java代码设计
此处只写了关闭指定的端口,如果是多个端口,使用for即可。
public class StopAppiumServer {
public static void main(String[] args) {
int port = 4723;
String common="netstat -ano | findstr \":" + port + "\"";
try {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd.exe", "/c", common); // 指定CMD命令
Process process = processBuilder.start();
process.waitFor(); // 等待CMD命令执行完成
InputStream inputStream= process.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains("LISTENING")) {
String[] parts = line.split(" ");
String pid = parts[parts.length - 1];
String killCmd = "taskkill /PID " + pid + " /F";
processBuilder.command("cmd.exe", "/c", killCmd);
process = processBuilder.start();
process.waitFor();
System.out.println("Appium Server stopped successfully");
break;
}
}
System.out.println("Appium Server stopped successfully");
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}