Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得在一个进程下运行的子线程总数?_Java_Process - Fatal编程技术网

Java 如何获得在一个进程下运行的子线程总数?

Java 如何获得在一个进程下运行的子线程总数?,java,process,Java,Process,我有一个代码,可以给我计算机上运行的进程列表 String line; Process p = Runtime.getRuntime().exec (System.getenv("windir") +"\\system32\\"+"tasklist.exe"); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())

我有一个代码,可以给我计算机上运行的进程列表

     String line;
     Process p = Runtime.getRuntime().exec
        (System.getenv("windir") +"\\system32\\"+"tasklist.exe");
     BufferedReader input =
            new BufferedReader(new InputStreamReader(p.getInputStream()));
     while ((line = input.readLine()) != null) {
     System.out.println(line);
此代码提供正在运行的进程的列表

假设我运行2个记事本,那么它将给出两行notepad.exe

但是假设我打开了两个word文档,那么只有一个
word.exe
。 因为在这种情况下,在一个进程下有两个子线程打开


因此,我的问题是如何获得在一个进程下运行的子线程总数?

您可以使用sysinternals中的pslist.exe执行此操作

e、 pslist-xchrome让你从所有chrome进程中获得所有线程


调用pslist.exe并检索结果可以类似于调用tasklist.exe。

Two
notepad.exe
意味着两个进程,而不是一个进程。那么你到底想要什么?@khachik ya。我同意。但是在word(MS word)中,它是线程。因此,假设我有一个打开的5个word文档,所以我想获得这种情况下的线程总数。谢谢。我如何将pslist.exe复制到system32目录?你不能将它复制到system32目录。您可以将它复制到工作目录,从那里启动java程序,并使用“Process p=Runtime.getRuntime().exec(“pslist-x”);”运行它是的。你说得对。它会工作的。但是如果我将pslist.exe复制到system32目录,那么就不会有pslist.exe出现在我的java程序所在的位置的条件。当然,但是你必须将它安装到system32目录中,这可能对你的用户有写保护。或者您的客户不想更改此目录中的某些内容。我希望我的程序尽可能的独立。无论如何:将文件复制到system32中有什么问题?它给出了一个错误,即您没有权限写入该文件夹。