2011-12-29 16:31 15182人阅读 评论(2) 收藏 举报
 分类:
Java(37) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

之前并不知道Java中如何能够获取当前进程(也就是包含当前Java程序的JVM所在进程)的进程ID,还以为要通过JNI或者通过Runtime.exec执行shell命令等方式才能获取到当前进程的进程ID,今天在偶然中看到一种在Java程序里,获取当前进程ID的方法,记录下来,以后应该会用到:)

首先,从JDK1.5之后,Java开始提供包:java.lang.management

java.lang.management 提供了一系列的用来在运行时管理和监督JVM和OS的管理接口。

今天我将用到的就是这个包中的一个类:ManagementFactory。 

获取pid的程序代码如下:

  1. import sun.management.ManagementFactory;
  2. // get name representing the running Java virtual machine.
  3. String name = ManagementFactory.getRuntimeMXBean().getName();
  4. System.out.println(name);
  5. // get pid
  6. String pid = name.split("@")[0];
  7. System.out.println(“Pid is:” + pid);

输出的结果如下:

  1. 25107@abc.mmm.xxx.yyy.com
  2. Pid is :25107

第一行打印的是代表运行时JVM的一个名字,我们可以看到,这个名字是以进程pid开头,以机器名结尾,中间用“@”连接而成的。

因此我们就可以从这个名字当中,截取出我们所需的pid了。

当然,这只是java.lang.management包中的一个小功能,该包还提供了很多其他的管理接口,参照java doc如下:

Interface Summary
ClassLoadingMXBean The management interface for the class loading system of the Java virtual machine.
CompilationMXBean The management interface for the compilation system of the Java virtual machine.
GarbageCollectorMXBean The management interface for the garbage collection of the Java virtual machine.
MemoryManagerMXBean The management interface for a memory manager.
MemoryMXBean The management interface for the memory system of the Java virtual machine.
MemoryPoolMXBean The management interface for a memory pool.
OperatingSystemMXBean The management interface for the operating system on which the Java virtual machine is running.
RuntimeMXBean The management interface for the runtime system of the Java virtual machine.
ThreadMXBean The management interface for the thread system of the Java virtual machine.

最新文章

  1. MySQL误操作后如何快速恢复数据
  2. ubuntu安装node.js+express+mongodb
  3. hdu1540 Tunnel Warfare
  4. 关于缺省路由传递问题的探讨(下)[ip default-network、ip default-gateway等]
  5. 微信lbs---返回两个经纬度坐标点的距离
  6. MAC OS Nginx php-fpm相关
  7. 【C语言】-条件语句-switch语句
  8. struts2 package元素
  9. 【POJ2699】The Maximum Number of Strong Kings(网络流)
  10. 2016.7.13abstract
  11. POJ 2352 && HDU 1541 Stars (树状数组)
  12. 用CSS3实现无限循环的无缝滚动
  13. 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
  14. 采用自定义协议代替OCX组件
  15. ipconfig命令查ip的时候给别人看有危险吗
  16. ionic1页面切换动画卡顿优化
  17. git 不能创建分支
  18. wrap
  19. 类 __new__方法实现单例
  20. thinkphp装修平台源码

热门文章

  1. 编译安装CoreSeek-4.1
  2. CentOS 6.4 X64 利用 yum 升级到 Oracle linux 6.4 内核
  3. chart.js在html中画曲线图
  4. PC端 H5实现拍照并上传
  5. Postman 测试web接口(推荐)
  6. 【repost】JS中的hook机制
  7. 两端对齐justify
  8. 【ural1297】 Palindrome
  9. IOS开发中如何使用通知NSNotification传值
  10. UVa 10176 - Ocean Deep ! - Make it shallow !!