「java命令获取进程号」java获取进程名称

博主:adminadmin 2022-11-24 22:38:09 62

本篇文章给大家谈谈java命令获取进程号,以及java获取进程名称对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java如何得到当前进程ID号

进程号也就是UNIX类OS中的,Process ID

可是Process ID的概念只有在UNIX类的操作系统中才有,Java作为一种多平台的程序语言,在JDK的接口中并不提供“进程ID”(Process ID)这种OS独有的概念。

如果要结束程序,可以使用System.exit()

如果非要得到自己的Process ID,唯一的方法就是在shell取得Process ID,然后Java在通过某种方式取得相应的Process ID。

java怎样获取进程列表

java是无法完成此类与系统相关的操作的

楼主如果实在需要这样做,建议如下

用vc或vb编写获得windows当前的进程列表及其路径,内存大小的程序

然后在java中用runtime.execute执行这个exe

捕捉此exe的输出流

如何查看Java进程并获取进程ID

用top -u 命令查看进程以及PID。 命令如下: $ top -u PID — 进程idUSER — 进程所有者PR —

java 获取指定的进程id

package test;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

public class GetPid {

private static final String PNAME = "QQ";

public static void main(String[] args)

throws IOException {

System.out.println("包含关键字 "+PNAME+" 的进程有:");

System.out.println();

String path = System.getProperty("user.dir");

final File createFileName = new File(path + "\\mytempscript.vbe");

if(createFileName.exists()?createFileName.delete():createFileName.createNewFile()){}

final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,

true), true);

pw.println("for each ps in getobject(\"winmgmts:\\\\.\\root\\cimv2:win32_process\").instances_");

pw.println("wscript.echo ps.handlevbtabps.name");

pw.println("next");

pw.close();

final InputStream ii = Runtime.getRuntime().exec(

"cscript " + path + "\\mytempscript.vbe").getInputStream();

final InputStreamReader ir = new InputStreamReader(ii);

final BufferedReader br = new BufferedReader(ir);

String str = null;

String[] ss = null;

while ((str = br.readLine()) != null) {

if (str.indexOf(PNAME)0str.endsWith(".exe")) {

ss = str.split("\\s");

for(int i=0;iss.length;i+=2){

System.out.println("****************************");

System.out.println("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);

}

}

}

System.out.println("****************************");

ir.close();

ii.close();

br.close();

}

}

运行结果如下

包含关键字 QQ 的进程有:

****************************

进程名:QQ.exe

进程ID:3956

****************************

java在windows下如何实现获取进程ID

给你个例子,通过调用windows的命令得到当前系统内的进程列表,然后你根据需要自己过滤出想要的进程ID(字符串分析).

try {

Process p = Runtime.getRuntime().exec("cmd /c tasklist");

InputStream is = p.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);

byte[] buf = new byte[4096];

while(is.read(buf)0){

//我在这里只是简单输出结果,你可以对结果进行你要的处理。

System.out.println(new String(buf));

}

bis.close();

is.close();

} catch (IOException e) {

e.printStackTrace();

} 答案补充 java是运行在其JVM中的,JVM是操作系统的一个进程,和操作系统中的其他进程是一样的.

对于你的补充提问,建议你使用java的jni来解决.java通过jni可以调用C来完成一些底层的事情.

java获取进程名称

代码:

package com.test;

import java.lang.management.ManagementFactory;

import java.lang.management.RuntimeMXBean;

public class Target {

public static void main(String[] args) throws InterruptedException { System.out.println(getProcessID());

while(true) {

Thread.sleep(10000);

}

}

public static final int getProcessID() {

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();

System.out.println(runtimeMXBean.getName());

return Integer.valueOf(runtimeMXBean.getName().split("@")[0]) .intValue();

}

}

运行结果:2896@PC-20150603VRPL2896

当前进程ID为2896。

ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理VM的静态接口,比如RuntimeMXBean;

RuntimeMXBean是Java虚拟机的运行时管理接口.

关于java命令获取进程号和java获取进程名称的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。