ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java:如何扫描ide输出中的最大数字?

2019-10-26 07:02:58  阅读:176  来源: 互联网

标签:taskmanager cmd java


所以我有这段代码可以打印出从任务管理器到NetBeans中的ide的正在运行的进程,但是我想扫描进程的输出,以便可以列出当时PC上运行最高的进程?

public static void main(String[] args) throws IOException {
  try {
   String tasklist;
   Process p = Runtime.getRuntime().exec
    (System.getenv("windir") +"\\system32\\"+"tasklist.exe");
    try (BufferedReader input = new BufferedReader(new   InputStreamReader(p.getInputStream()))) {
      while ((tasklist = input.readLine()) != null) {
      System.out.println(tasklist); //<-- Parse data here.
  }
}
} catch (IOException err) {
  err.printStackTrace();
} 
}

例如,这给了我下面的输出,如果我想杀死netbeans,因为它运行了500,000k以上,我该怎么做?

Image Name                     PID Session Name        Session    Mem Usage

chrome.exe                    3464 Console                    3    159,672 K
netbeans64.exe                3664 Console                    3    592,216 K
chrome.exe                    3808 Console                    3    384,556 K
java.exe                      2040 Console                    3     36,732 K
tasklist.exe                  2208 Console                    3      6,196 K

解决方法:

您迭代该数据;并收集您感兴趣的那些属性;例如名称,PID,当然还有内存用法.

您可能会创建一个类似的类

public class RunningProcessInfo {
  private final String name ...

  public RunningProcessInfo(String name, int pid, int memUsage) {

换句话说:您编写的解析代码将一行作为

chrome.exe 3464 Console 3 159,672 K

并将其变成

new RunningProcessInfo("chrome.exe", 3464, 159672)

(通过分析字符串输入;将“ 3464”之类的字符串转换为数字,依此类推).

含义:替换行System.out.println(tasklist);与类似的东西

processInfos.add( parseLine(tasklist) );

processInfos是一些ArrayList< RunningProcessInfo> parseLine()是采用单行并获取数据以构建新的RunningProcessInfo对象的方法.

您将这些对象收集在列表中.然后,您可以迭代该列表以查找满足特定条件的所有对象.

最后,您使用另一个流程生成器发送命令以杀死要杀死的PID(有关示例,请参阅here).当然,您要注意-因为您肯定不想在该会话运行程序时杀死netbeans会话,所以…

标签:taskmanager,cmd,java
来源: https://codeday.me/bug/20191026/1934652.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有