Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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_Memory_Processbuilder - Fatal编程技术网

Java 如何获取已启动进程的内存使用率

Java 如何获取已启动进程的内存使用率,java,memory,processbuilder,Java,Memory,Processbuilder,我尝试通过Java获取启动进程的内存使用情况。 有人能给我一个提示如何为示例Notepad.exe执行此操作吗 // Memoryusage of the Java programm Runtime runtime=Runtime.getRuntime(); total = runtime.totalMemory(); System.out.println("System Memory: " + total); ProcessBuilder builde


我尝试通过Java获取启动进程的内存使用情况。
有人能给我一个提示如何为示例Notepad.exe执行此操作吗

    // Memoryusage of the Java programm
    Runtime runtime=Runtime.getRuntime();
    total = runtime.totalMemory();
    System.out.println("System Memory: " + total);

    ProcessBuilder builder = new ProcessBuilder("notepad.exe");
    Process p = builder.start();
谢谢你的帮助

这篇文章有你的答案

引用最重要的答案:

新进程在启动它的Java进程之外运行。作为进程管理的一部分,新进程的内存分配由操作系统管理。 Java类ProcessBuilder在Java进程内部运行,它提供了启动新进程并与之通信的接口


您可以运行系统命令并将其输出转储到文件中。 然后,解析此文件以查找内存使用情况。

此问题包括

   ProcessBuilder pb = new ProcessBuilder("cmd.exe",  "/C", "tasklist /fi \"IMAGENAME eq notepad.exe\" /NH");

解决了我的问题。

因此,没有其他方法可以启动另一个进程(也在java之外)来获得内存使用率?java除外。你可以尝试用C++解决这个问题。