java - 获取 Java 进程的 CPU 使用率

标签 java linux jboss

我需要从 LINUX 中的 java 代码获取特定进程的 CPU 使用率。

我试过了

Process p = Runtime.getRuntime().exec("top");

Process p = Runtime.getRuntime().exec("top | grep java");

但是它没有返回任何东西。其实我想得到几个JBOSS节点的CPU使用率。如果我可以“顶”或 java 代码中的某些内容,那么我可以处理输出并找到我想要的详细信息。

但如果我尝试

Process p = Runtime.getRuntime().exec("ls -l");

它正确地返回了输出。

我可以这样做吗?还有其他选择吗?

谢谢。

最佳答案

如果您知道进程 ID,并且您是启动它们的用户(或者您有足够的权限),您总是可以通过阅读伪文件/proc/PID 来获取详细信息/统计。在回答这个问题时很好地描述了如何做到这一点:How to calculate the CPU usage of a process by PID in Linux from C? .

关于java - 获取 Java 进程的 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090920/

相关文章:

java - Gradle 5.1 上的依赖关系解析失败

java - lock() 方法中的 Grails StaleObjectStateException

mysql - Ubuntu服务器: MySQL setup hostname to respond to domainname?

c++ - 不确定如何创建 MakeFIle

java - 无法连接到intellij中的Wildfly服务器

java - 在 JBoss 5.1 中取消部署 WAR 时出现 ZipFileException

java - 当我调用不同的包时,如何在 Java 中返回多个对象类型(String、int、int)?

java - 通过使用正则表达式在 Java 中输入密码

java - ubuntu 14.04 无法安装或运行 eclipse adt 和 android sdk

java - 用 Axis2 错误 XML 响应替换 JBoss 错误页面