zoukankan      html  css  js  c++  java
  • 如何获得Process对象的PID (JAVA)

    找到了这里,就代表你找到了解决问题的途径

    在Liunx系统上,如何获得一个Process对象的PID,用于杀死进程。

    网上最多的解法是利用java.lang.UNIXProcess获取,当时我在CentOS-7上试了一次,发现不好使,代码如下:

    Class<?> clazz = Class.forName("java.lang.UNIXProcess");
    field = clazz.getDeclaredField("pid")
    field.setAccessible(true);
    pid = (Integer)field.get(p);
    这段代码是手敲的,不保证正确,大概就是这样

    会报错

    报错为:java.lang.ClassNotFoundException: java.lang.UNIXProcess

    简而言之,就是找不到对应的类。

    主要原因是:Process是一个抽象类,其本身不能实例化的,能实例化的是其子类,UNIXProcess能用的前提必须是Process的子类。我经过查询,发现在我使用的系统(或者JDK)版本上,Process的子类是ProcessImpl。如果有一天,我这个解法也不好用了,没关系,继续找Process的子类就可以了。。。

    解决方法是把java.lang.UNIXProcess替换为java.lang.ProcessImpl

  • 相关阅读:
    IE 兼容问题笔记
    php编码与解码
    php 一些神奇加有趣的函数
    RESTful 规范
    关于CSS3背景渐变色无效问题
    ECShop
    php中的PHP_EOL换行符
    用 openSSL 生成 公钥 私钥
    app调用支付宝支付 笔记
    utf8 文件 错误保存为gbk 中文乱码 解决方法
  • 原文地址:https://www.cnblogs.com/PPWEI/p/13891495.html
Copyright © 2011-2022 走看看