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
相关文章:
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何在阿里云虚拟主机上快速搭建个人网站?
建站之星在线客服如何快速接入解答?
代购小票制作网站有哪些,购物小票的简要说明?
常州企业网站制作公司,全国继续教育网怎么登录?
高防服务器租用指南:配置选择与快速部署攻略
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
子杰智能建站系统|零代码开发与AI生成SEO优化指南
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
图册素材网站设计制作软件,图册的导出方式有几种?
建站之星ASP如何实现CMS高效搭建与安全管理?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
公司网站的制作公司,企业网站制作基本流程有哪些?
制作企业网站建设方案,怎样建设一个公司网站?
建站之星如何实现PC+手机+微信网站五合一建站?
建站之星后台密码遗忘如何找回?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何获取免费开源的自助建站系统源码?
C#如何序列化对象为XML XmlSerializer用法
如何快速搭建安全的FTP站点?
如何选择可靠的免备案建站服务器?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
已有域名如何快速搭建专属网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何快速重置建站主机并恢复默认配置?
如何在局域网内绑定自建网站域名?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站之星如何取消后台验证码生成?
如何快速启动建站代理加盟业务?
建站之星如何修改网站生成路径?
IOS倒计时设置UIButton标题title的抖动问题
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
安徽网站建设与外贸建站服务专业定制方案
装修招标网站设计制作流程,装修招标流程?
如何通过建站之星自助学习解决操作问题?
建站之星上传入口如何快速找到?
如何高效完成自助建站业务培训?
如何在景安服务器上快速搭建个人网站?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
焦点电影公司作品,电影焦点结局是什么?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何零基础在云服务器搭建WordPress站点?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。