最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java獲取Process子進(jìn)程進(jìn)程ID方法詳解

 更新時(shí)間:2022年12月30日 10:45:37   作者:初心JAVA  
這篇文章主要介紹了Java獲取Process子進(jìn)程進(jìn)程ID方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

java可以通過Runtime.getRuntime().exec()執(zhí)行一個(gè)操作系統(tǒng)的命令,在操作系統(tǒng)層面執(zhí)行命令也就創(chuàng)建了一個(gè)進(jìn)程,Java中用Process類表示進(jìn)程,如何獲取進(jìn)程ID呢?Process是一個(gè)抽象類,然后它并沒有直接為我們提供獲取進(jìn)程ID的屬性或方法。

下面來介紹一下在兩種最常用的操作系統(tǒng)(windows、linux)上用Java執(zhí)行本地命令后,如何獲取對應(yīng)的進(jìn)程ID。

windows上獲取pid

首先引入如下依賴。

<dependency>
  <groupId>net.java.dev.jna</groupId>
  <artifactId>jna</artifactId>
  <version>5.12.1</version>
</dependency>
<dependency>
  <groupId>net.java.dev.jna</groupId>
  <artifactId>jna-platform</artifactId>
  <version>5.12.1</version>
</dependency>

示例代碼如下。

Process p = Runtime.getRuntime().exec("ping -n 1000 localhost");
Field f = p.getClass().getDeclaredField("handle");
f.setAccessible(true);
long handle = f.getLong(p);
Kernel32 kernel = Kernel32.INSTANCE;
WinNT.HANDLE winntHandle = new WinNT.HANDLE();
winntHandle.setPointer(Pointer.createConstant(handle));
int pid = kernel.GetProcessId(winntHandle);
System.out.println("進(jìn)程id="+pid);
InputStream in = p.getInputStream();
byte[] b = new byte[1024];
int len = -1;
try {
    while (true) {
        len = in.read(b);
        System.out.print(new String(b, 0, len, "GBK"));
        Thread.sleep(1000L);
    }
} catch (Exception e) {
    e.printStackTrace();
}

運(yùn)行后,控制臺輸出如下圖所示。

下面驗(yàn)證一下8264是不是ping命令的進(jìn)程ID。

方式一:通過任務(wù)管理器。

方式二:通過tasklist命令

tasklist | findstr 8264

linux上獲取pid

當(dāng)放到linux操作系統(tǒng)上運(yùn)行的時(shí)候,Process的實(shí)現(xiàn)為java.lang.UNIXProcess,該類有一個(gè)int類型的屬性pid,就是我們要的進(jìn)程ID。這里我就不演示了,直接上代碼。

Process p = Runtime.getRuntime().exec("ping -c 1000 localhost");
Field pid = p.getClass().getDeclaredField("pid");
pid.setAccessible(true);
System.out.println(pid.getInt(p));

怎么驗(yàn)證呢?可以用如下命令:

ps -aux|grep ping

到此這篇關(guān)于Java獲取Process子進(jìn)程進(jìn)程ID方法詳解的文章就介紹到這了,更多相關(guān)Java獲取Process子進(jìn)程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring AOP中使用args表達(dá)式的方法示例

    Spring AOP中使用args表達(dá)式的方法示例

    這篇文章主要介紹了Spring AOP中使用args表達(dá)式的方法,結(jié)合實(shí)例形式分析了spring面向切面AOP中使用args表達(dá)式具體步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Java超詳細(xì)分析講解哈希表

    Java超詳細(xì)分析講解哈希表

    哈希表是一種根據(jù)關(guān)鍵碼去尋找值的數(shù)據(jù)映射結(jié)構(gòu),該結(jié)構(gòu)通過把關(guān)鍵碼映射的位置去尋找存放值的地方,說起來可能感覺有點(diǎn)復(fù)雜,我想我舉個(gè)例子你就會明白了,最典型的的例子就是字典
    2022-06-06
  • Java使用Arrays.sort()方法實(shí)現(xiàn)給對象排序

    Java使用Arrays.sort()方法實(shí)現(xiàn)給對象排序

    這篇文章主要介紹了Java使用Arrays.sort()方法實(shí)現(xiàn)給對象排序,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • C#創(chuàng)建Web應(yīng)用程序代碼實(shí)例

    C#創(chuàng)建Web應(yīng)用程序代碼實(shí)例

    本文主要通過實(shí)例代碼介紹了C#創(chuàng)建Web應(yīng)用程序,需要的朋友可以參考下
    2017-04-04
  • 使用fileupload組件實(shí)現(xiàn)文件上傳功能

    使用fileupload組件實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了使用fileupload實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 使用java對一副撲克牌建模

    使用java對一副撲克牌建模

    這篇文章主要為大家詳細(xì)介紹了如何使用java對一副撲克牌建模,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Jmeter邏輯控制器事務(wù)控制器使用方法解析

    Jmeter邏輯控制器事務(wù)控制器使用方法解析

    這篇文章主要介紹了Jmeter邏輯控制器事務(wù)控制器使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼

    Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)調(diào)用外部程序的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring的@Transactional嵌套解讀

    Spring的@Transactional嵌套解讀

    本文通過詳細(xì)測試,探究了Spring的@Transactional注解在事務(wù)嵌套和局部回滾場景下的行為表現(xiàn),文中通過多個(gè)測試案例,闡述了不同傳播行為(如REQUIRES_NEW)對事務(wù)嵌套處理的影響,以及rollbackFor屬性在異常管理中的作用和限制,通過實(shí)驗(yàn)總結(jié)
    2024-11-11
  • 淺析Java的Hibernate框架中的繼承關(guān)系設(shè)計(jì)

    淺析Java的Hibernate框架中的繼承關(guān)系設(shè)計(jì)

    這篇文章主要介紹了Java的Hibernate框架中的繼承關(guān)系設(shè)計(jì),Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12

最新評論

云霄县| 昌吉市| 昌黎县| 鄱阳县| 夏邑县| 类乌齐县| 读书| 青田县| 海林市| 巴林右旗| 黑山县| 馆陶县| 北京市| 当雄县| 油尖旺区| 察雅县| 西和县| 武定县| 靖边县| 通许县| 阳东县| 郯城县| 台中县| 孝昌县| 定州市| 梅州市| 盘山县| 汕头市| 垣曲县| 巴东县| 元江| 安阳县| 治多县| 夏邑县| 措勤县| 寿阳县| 佛山市| 禄丰县| 镇宁| 甘南县| 株洲县|