Runtime

Java可以通过Runtime来调用其他进程,如cmd命令,shell文件的执行等。可以应该该类设置系统时间,执行shell文件。此处记录几个有用应用如下。
设置本地时间
可以调用cmd /c date命令,完成本地时间设置,不过这个命令在win7下可以使用,但是win10需要管理员权限,可能无法设置系统时间。win7下使用Java实现修改本地时间代码如下,需要注意的是waitFor是必须的,否则无法立即生效。
/**
* 设置本地日期
* @param date yyyy-MM-dd格式
*/
private static void setSystemDate(String date){
Process process = null;
String command1 = "cmd /c date "+date;
System.out.println(command1);
try {
process = Runtime.getRuntime().exec(command1);
//必须等待该进程结束,否则时间设置就无法生效
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}finally{
if(process!=null){
process.destroy();
}
}
}
网卡吞吐量计算
可以通过cat /proc/net/dev命令获取网卡信息,两次获取网卡发送和接收数据包的信息,来计算网卡吞吐量。实现如下:
/**
* @Purpose:采集网络带宽使用量
* @param args
* @return float,网络带宽已使用量
*/
public static Double getNetworkThoughput() {
Double curRate = 0.0;
Runtime r = Runtime.getRuntime();
// 第一次采集流量数据
long startTime = System.currentTimeMillis();
long total1 = calculateThoughout(r);
// 休眠1秒后,再次收集
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 第二次采集流量数据
long endTime = System.currentTimeMillis();
long total2 = calculateThoughout(r);
// 计算该段时间内的吞吐量:单位为Mbps(million bit per second)
double interval = (endTime-startTime)/1000;
curRate = (total2-total1)*8/1000000*interval;
System.out.println("收集网络带宽使用率结束,当前设备的网卡吞吐量为:"+(curRate)+"Mbps.");
return curRate;
}
/**
* 计算某个时刻网卡的收发数据总量
* @param runtime
* @return
*/
private static long calculateThoughout(Runtime runtime){
Process process = null;
String command = "cat /proc/net/dev";
BufferedReader reader = null;
String line = null;
long total = 0;
try {
process = runtime.exec(command);
reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = reader.readLine()) != null) {
line = line.trim();
// 考虑多网卡的情况
if (line.startsWith("eth")) {
log.debug(line);
line = line.substring(5).trim();
String[] temp = line.split("\\s+");
total+=(Long.parseLong(temp[0].trim()));// Receive
total+=(Long.parseLong(temp[8].trim()));// Transmit
}
}
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (process != null) {
process.destroy();
}
}
return total;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# Process
# Process实例详解
# Java Process中waitFor()的问题详解
# Java超详细讲解多线程中的Process与Thread
# Java中Process类的使用与注意事项说明
# Java Process类的详解及实例代码
# Java获取Process子进程进程ID方法详解
# 网络带宽
# 可以通过
# 的是
# 几个
# 两次
# 时间内
# 希望能
# 可以使用
# 谢谢大家
# 需要注意
# 数据包
# 量为
# 使用量
# 已使
# 量计算
# InterruptedException
# IOException
# printStackTrace
# finally
# catch
相关文章:
如何快速建站并高效导出源代码?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
韩国服务器如何优化跨境访问实现高效连接?
linux top下的 minerd 木马清除方法
建站主机选哪种环境更利于SEO优化?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
建站之星导航如何优化提升用户体验?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何快速搭建高效简练网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
定制建站策划方案_专业建站与网站建设方案一站式指南
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
jQuery 常见小例汇总
,想在网上投简历,哪几个网站比较好?
开封网站制作公司,网络用语开封是什么意思?
黑客如何通过漏洞一步步攻陷网站服务器?
如何在阿里云部署织梦网站?
C#如何序列化对象为XML XmlSerializer用法
制作宣传网站的软件,小红书可以宣传网站吗?
小程序网站制作需要准备什么资料,如何制作小程序?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何快速使用云服务器搭建个人网站?
建站VPS选购需注意哪些关键参数?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
网站制作软件有哪些,制图软件有哪些?
建站VPS推荐:2025年高性能服务器配置指南
如何挑选高效建站主机与优质域名?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
利用JavaScript实现拖拽改变元素大小
如何零基础在云服务器搭建WordPress站点?
Swift中swift中的switch 语句
,有什么在线背英语单词效率比较高的网站?
网站制作网站,深圳做网站哪家比较好?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
宝塔建站助手安装配置与建站模板使用全流程解析
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
如何在VPS电脑上快速搭建网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
英语简历制作免费网站推荐,如何将简历翻译成英文?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何高效利用200m空间完成建站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
如何用腾讯建站主机快速创建免费网站?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何在IIS中新建站点并配置端口与IP地址?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
*请认真填写需求信息,我们会在24小时内与您取得联系。