文档章节

Window java 扫描、查找、杀死进程

loowj
 loowj
发布于 2015/11/23 18:23
字数 287
阅读 142
收藏 5
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

/**
 * Windows下java对进程的操作
 * Created by luoweijun on 2015/11/19.
 */
public class TaskHelp {
	/**
	 * @param args
	 */
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		// startTask("E://Fetion//Fetion.exe");
		TaskHelp.killTask("nginx");
	}

	/**
	 * 杀死一个进程
	 *
	 * @param name    进程的名称,可前后模糊匹配
	 */
	public static void killTask(String name) {
		try {
			Process process = Runtime.getRuntime().exec("taskList");
			InputStream is = process.getInputStream();
			Scanner in = new Scanner(is);
			int count = 0;
			while (in.hasNextLine()) {
				count++;
				String s1 = in.nextLine();

				if (s1.contains(name)) {
					int c = s1.indexOf(" ", s1.indexOf(".exe"));
					String s2 = s1.substring(c, s1.length()).trim();
					String pid = s2.substring(0, s2.indexOf(" "));

					Runtime.getRuntime().exec("tskill " + pid);
				}
			}
			is.close();
			in.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


	/**
	 * 查找Pid
	 *
	 * @param name
	 * @return 任务存在返回任务PID,任务不存在返回空字符
	 */
	public static String findPid(String name) {
		try {
			Process process = Runtime.getRuntime().exec("taskList");
			Scanner in = new Scanner(process.getInputStream());
			int count = 0;
			while (in.hasNextLine()) {
				count++;
				String s1 = in.nextLine();

				if (s1.contains(name)) {
					int c = s1.indexOf(" ", s1.indexOf(".exe"));
					String s2 = s1.substring(c, s1.length()).trim();
					String pid = s2.substring(0, s2.indexOf(" "));
					return pid;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}


	/**
	 * 显示当前机器的所有进程
	 */
	public static void showTaskList() {
		try {
			Process process = Runtime.getRuntime().exec("taskList");
			Scanner in = new Scanner(process.getInputStream());
			int count = 0;
			while (in.hasNextLine()) {
				count++;
				System.out.println(count + ":" + in.nextLine());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 启动一个进程
	 *
	 * @param task
	 */
	public static void startTask(String task) {
		try {
			Process p = Runtime.getRuntime().exec(task);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


© 著作权归作者所有

loowj
粉丝 23
博文 194
码字总数 145987
作品 0
上海
后端工程师
私信 提问
加载中

评论(2)

h
huyinda
h
huyinda
【转】Java Crash原因汇总

如果是Java进程不知道什么原因退出或被杀死,想要分析具体原因,一般来说分下面几步: 1. 拿到Java应用程序的日志文件 2. 查找JVM的致命错误日志 3. 查找操作系统的core dump文件 4. 使用Dtr...

mj4738
2011/12/04
708
0
IDEA为什么debug跑的时候突然会停掉并重启不来

IDEA为什么debug跑的时候突然会停掉并重启不来 然后就一直报Error running apache-tomcat-7-1: Unable to open debugger port : java.net.BindException "Address already in use: JVM_Bind"......

陈袁at互联
2014/03/13
6.7K
5
使用cgroup限制java使用的内存量-思路

1. 对一个正在运行着的进程来说,在不到达其内存使用量边界的情况下,扩大/缩小其cgroup分配的内存不会对它产生任何影响。 2. 在进程已经使用了一定量的内存的情况下,缩小其cgroup内存至小于...

长平狐
2013/11/25
324
1
Linux 下shell启动Java Main函数脚本

#!/bin/sh # #该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用。 #警告!!!:该脚本stop部分使用系统kill命令来强...

心月狐
2018/05/14
0
0
Linux查看进程、杀死进程、启动进程等常用命令

关键字: linux 查进程、杀进程、起进程 查进程 最常用的方法是ps -aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。 杀死进程 使用kill命令结束进程:kill ...

帅气的程小二
2018/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一、docker 入坑(win10和Ubuntu 安装)

前言 终究还是绕不过去了,要学的知识真的是太多了,好在我们还有时间,docker 之前只闻其声,不曾真正的接触过,现在docker 越来越火,很多公司也都开始使用了。所以对于我们程序员而言,又...

quellanan2
2分钟前
2
0
AutoCompleteTextView

小技巧按菜单键 当菜单打开之前会调用onMenuOpened(int featereId,Menu menu),可以重写这个方法,弹出对话框或者Popmenu 再布局中添加控件AutoCompleteTextView. <AutoCompleteTextVie...

逆天游云
5分钟前
2
0
谷歌软件商店:推出5美元会员 可用数百个软件

腾讯科技讯,谷歌和苹果是全球两大智能手机操作系统的运营者,两家公司旗下分别拥有占据行业垄断地位的谷歌软件商店和苹果软件商店。据外媒最新消息,手机软件商店的商业模式正在发生一些变化...

linuxCool
28分钟前
1
0
RocketMQ 多副本前置篇:初探raft协议

Raft协议是分布式领域解决一致性的又一著名协议,主要包含Leader选举、日志复制两个部分。 温馨提示: 本文根据raft官方给出的raft动画进行学习,其动画展示地址:http://thesecretlivesofda...

中间件兴趣圈
28分钟前
1
0
elasticsearch 6.8.0 添加认证

1. 修改elasticsearch-6.8.0/config/elasticsearch.yml 最后添加一行:xpack.security.enabled: true 2. 初始化用户和密码 ./bin/elasticsearch-setup-passwords interactive 我这里初始化为......

coord
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部