// 得到进程ID
public static String getPID(String port)
{
InputStream is = null;
BufferedReader br = null;
String pid = null;
try
{
String[] args = new String[]
{ "cmd.exe", "/c", "netstat -aon|findstr", port };
is = Runtime.getRuntime().exec(args).getInputStream();
br = new BufferedReader(new InputStreamReader(is));
String temp = "";
while((temp = br.readLine()) != null)
{
if ((temp.indexOf(":80 ")>0)&& (temp.indexOf("LISTENING")>0))
{
String[] strs = temp.split("//s");
pid = strs[strs.length - 1];
break;
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
return pid;
}
// 根据进程ID得到映像名称
public static String getProgramName(String pid)
{
InputStream is = null;
BufferedReader br = null;
String programName = null;
try
{
String[] args = new String[]
{ "cmd.exe", "/c", "tasklist|findstr", pid };
is = Runtime.getRuntime().exec(args).getInputStream();
br = new BufferedReader(new InputStreamReader(is));
String temp = br.readLine();
if (temp != null)
{
String[] strs = temp.split("//s");
programName = strs[0];
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
return programName;
}
// 根据映像名称关闭进程
public static void killTask(String programName)
{
String[] args = new String[]
{ "Taskkill", "/f", "/IM", programName };
try
{
Runtime.getRuntime().exec(args);
}
catch (IOException e)
{
e.printStackTrace();
}
}
本文提供了一个自动化脚本,用于通过进程ID获取进程映像名称,并进一步关闭该进程。脚本利用了命令行工具如cmd.exe和Runtime类来实现这一功能。
1359

被折叠的 条评论
为什么被折叠?



