使用Java获取windows进程的路径
来源:互联网 发布:sql查询分析器区别 编辑:程序博客网 时间:2024/05/16 10:44
最近写一个小程序扫描服务器上项目的启动情况时遇到一问题,就是当服务器多个项目启动时,进程中显示的都是javaw.exe,无法分辨哪个javaw.exe属于哪个项目,所以就想获取进程的路径,但是网上百度都只能获取到进程pid,无法得到进程路径,之后通过google搜到了如下一段代码:
/*1)、取当前进程ID*///9420@XMCX pid@计算机名String pid = ManagementFactory.getRuntimeMXBean().getName();//@之前为进程IDpid = pid.substring(0, pid.indexOf('@'));/*2)、根据进程ID取进程命令路径 D:\jdk1.6.0_18\bin\javaw.exe*/Sigar sigar = new Sigar();//http://www.oschina.net/p/sigarSystem.out.println(sigar.getProcExe(pid).getName());System.out.println(sigar.getProcArgs(pid)[0]);
刚好同时在CSDN论坛中提问有位大神也回复使用Sigar可以实现,遂下了sigar的jar包,然后一番折腾,终于弄出来了。sigar.jar下载地址
具体实现代码如下:
1、先获取进程的pid,有两种方法:
第一种:
//tasklist:获取所有进程 String[] cmd = {"tasklist"}; try { Process process = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String string_temp = ""; while ((string_temp = in.readLine()) != null) { //在控制台中打印进程信息 System.out.println(string_temp); if(string_temp.indexOf("进程名") != -1) { //截取进程PID String pid = string_temp.substring(12, string_temp.indexOf("Console")).trim(); Sigar sigar = new Sigar(); //获取进程路径 String processPath = sigar.getProcExe(pid).getName(); System.out.println("----进程路径:" + processPath); } } } catch (Exception e) { e.printStackTrace(); }
第二种:
//获取当前进程的信息String name = ManagementFactory.getRuntimeMXBean().getName();//截取进程idString pid = name.substring(0, name.indexOf("@"));Sigar sigar = new Sigar();try { //获取进程路径 String processPath = sigar.getProcExe(pid).getName(); System.out.println("进程路径:" + processPath );} catch (SigarException e) { // TODO Auto-generated catch block e.printStackTrace();}
另外,Sigar包很强大,可以获取各种系统信息,大家可以去doc里面去看
对了,在导jar包的时候要顺带把“sigar-amd64-winnt.dll”或者“sigar-x86-winnt.dll”放到项目的根目录下。
阅读全文
1 0
- 使用Java获取windows进程的路径
- EnumProcessModules 使用 获取进程的路径
- windows获取pid进程路径
- 在Windows上获取进程的可执行文件路径
- 使用C Run-Time 获取当前进程的路径
- 使用wmic获取运行中进程的路径
- 获取进程当前的路径
- 使用编程方式获取当前Java进程的进程ID
- Windows获取进程的方法
- 获取Windows进程的父进程编号
- Windows进程的使用
- 获取NT中系统进程的路径
- 获取进程所在的exe路径
- VB获取某个进程的路径代码。
- 获取linux进程的执行文件路径
- 根据WHND获取进程的完全路径
- 根据WHND获取进程的完全路径
- PsGetProcessImageFileName - 获取进程的主模块路径
- 有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
- form 的action连接不到servlet
- yii框架写第三方登陆
- Android系统广播大全及开机自启动的Service
- 监控之告警恢复
- 使用Java获取windows进程的路径
- 计算机网络自顶向下 :应用层(FTP、SMTP、POP3、IMAP)
- JAVA字符串格式化-String.format()的使用
- XTabLayout
- java入门网站
- web.xml配置详解之监听器,过滤器
- Ubuntu17.04安装TensorFlow1.2的GPU版本
- Hibernate的事务处理机制和flush方法的用法
- JAVA8-Consumer函数