Sun的JDK里获取当前进程ID的方法(hack)
2016-03-10 16:05
585 查看
import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; public class ShowOwnPID { public static void main(String[] args) throws Exception { int pid = getPid(); System.out.println("pid: " + pid); System.in.read(); // block the program so that we can do some probing on it } private static int getPid() { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); String name = runtime.getName(); // format: "pid@hostname" try { return Integer.parseInt(name.substring(0, name.indexOf('@'))); } catch (Exception e) { return -1; } } }
Java标准库里常见的公有API确实是没有获取当前进程的ID的方法,有时候挺郁闷的,就是需要自己的PID。
于是有各种workaround,其中有很靠谱的通过JNI调用外部的C/C++扩展,然后调用操作系统提供的相应API去获取PID;也有些不怎么靠谱的hack。这里要介绍的就是后者之一,只在Sun JDK或兼容的JDK上有效的方法。
转载至:/article/4091987.html
相关文章推荐
- Spring注入有继承关系的类
- Java ConcurrentHashMap 最佳实践
- eclipse 粘贴字符串自动添加转义符
- Java中的阻塞队列
- Eclipse打包插件Fat Jar 解压打包
- 图片处理 javax.imageio.IIOException: Unsupported Image Type
- struts2 空文件上传解决
- Unable to locate Spring NamespaceHandler for XML schema namespace
- spring 事物 线程池 测试
- Spring单实例、多线程安全、事务解析
- Description Resource Path Location Type Java compiler level does not match the v
- Java命令的同时添加依赖jar包及参数
- spring 事物日志
- IT十八掌作业_java基础第七天_匿名内部类、异常、包和jar
- Spring数据库访问之ORM(三)
- java二维码生成及解析代码
- Struts2自定义拦截器
- Spring数据库访问之ORM(二)
- JAVA boolean 类型
- Spring数据库访问之ORM(一)