请问Java中获得CPU使用率的办法windows系统

请问Java中获得CPU使用率的办法windows系统,第1张

1、确定当前系统安装的jdk是16版本以上

2、windows系统中有获取cpu使用率的可执行文件exe,只要在java中获取该文件的执行路径,通过Java调用即可。

3、获取 *** 作系统可执行文件目录procCmd

4、调用java的RuntimegetRuntime()exec执行cmd应用程序

5、利用java中sleep来计算睡眠前后cpu的忙碌时间与空闲时间,因为sleep不会释放系统资源

6、根据忙碌时间占总时间的比例来计算cpu使用率

示例:

private double getCpuRatioForWindows() {  

        try {  

            String procCmd = Systemgetenv("windir")  

                    + "//system32//wbem//wmicexe process get Caption,CommandLine,"  

                    + "KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";  

            // 取进程信息  

            long[] c0 = readCpu(RuntimegetRuntime()exec(procCmd));  

            Threadsleep(CPUTIME);  

            long[] c1 = readCpu(RuntimegetRuntime()exec(procCmd));  

            if (c0 != null && c1 != null) {  

                long idletime = c1[0] - c0[0];  

                long busytime = c1[1] - c0[1];  

                return DoublevalueOf(  

                        PERCENT  (busytime) / (busytime + idletime))  

                        doubleValue();  

            } else {  

                return 00;  

            }  

        } catch (Exception ex) {  

            exprintStackTrace();  

            return 00;  

        }  

    }

windows下获取当前进程的话可以用dos命令tasklist

1

2

3

4

5

6

7

Runtime r=RuntimegetRuntime();

Process p=rexec("cmd /C tasklist");

BufferedReader reader=new BufferedReader(new InputStreamReader(pgetInputStream(),"gbk"));//windows的默认系统中文编码是gbk所以从cmd控制台的信息已gbk来解码

String line=null;

while((line=readerreadLine())!=null)

Systemoutprintln(line);

windows : RuntimegetRuntime()exec('taskkill /F /IM abcexe'); 帮助: 运行cmd输入taskkill - linux: RuntimegetRuntime()exec('killall -9 abcexe');

晕啊,用java来做这好麻烦java语言本身就不擅长往windows底层去,只能给你提供一个思路,可以用java的jnl调用windows底层的方法,可以监控进程和注册表,但是要必须要了解QQ的消息提示的原理和酷狗运行时的状态才行,那些原理没研究过

可以参考:

>

>

SWT Win32 Extension 是Eclipse类库SWT的Win32本地原生扩展

本项目提供了一个软件开发工具库,能够让您使用Java语言开发原生的Windows应用程序而不需要编写额外的JNI代码。使用SWT Win32 Extension,您将不需要创建原生的动态链接库来调用 *** 作系统动态链接库的系统API或者方法。您仅仅需要做的就是编写Java代码,   SWT Win32 Extension来负责剩下的部分。SWT Win32 Extension提供了一系列的功能使您的应用程序看上去和Win32本机程序别无二致。

窗口装饰功能: 提供窗口置顶,透明,闪动等功能。 

自定义窗口: 创建不规则的窗口。 

访问Windows注册表。 

系统文件夹: 获取系统特殊文件加的路径和图标。 

系统快捷方式: 管理系统快捷方式。 

系统相关信息: 收集系统CPU,内存,环境变量等相关信息。 

系统会话: 提供关机,休眠,重启,注销等功能。 

系统IO及网络功能: 提供磁盘和网络相关信息。 

活动桌面功能: 管理Windows活动桌面。 

系统钩子: 注册和卸载系统钩子,能够拦截和处理系统事件。 

窗口系统菜单: 管理窗口菜单。用户可以自定义系统菜单和处理菜单事件。 

Ole 控件: 提供对一些常用控件的封装,比如flash。 值得一提的是,您能够访问SWT提供的所有功能,因为SWT Win32 Extension是从SWT派生出来的。

以上就是关于请问Java中获得CPU使用率的办法windows系统全部的内容,包括:请问Java中获得CPU使用率的办法windows系统、java怎么获得其它程序句柄、如何让一个Java进程与其他Windows进程进行通信等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9486738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存