全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java Process详解及实例

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小时内与您取得联系。