广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    J2SE1.5新特性之ProcessBuilder

    2018-10-28 11:06:33 次阅读 稿源:互联网
    零七广告

    这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。这里使用它在Windows下读取物理网卡的地址 

    package com.kuaff.JDK5package; 
      
      import Java.io.IOException;
      
      import java.io.InputStream;
      
      import java.util.ArrayList;
      
      import java.util.List;
      
      public class ProcessBuilderShow
      
      {
      
       public static List getPhysicalAddress()
      
       {
      
      Process p = null;
      
      //物理网卡列表
      
      List address = new ArrayList();
      
      try
      
      {
      
       //执行ipconfig /all命令
      
       p = new ProcessBuilder("ipconfig", "/all").start();
      
      }
      
      catch (IOException e)
      
      {
      
       return address;
      
      }
      
      byte[] b = new byte[1024];
      
      StringBuffer sb = new StringBuffer();
      
      //读取进程输出值
      
      InputStream in = p.getInputStream();
      
      try
      
      {
      
       while (in.read(b)>0)
      
       {
      
      sb.append(new String(b));
      
       }
      
      }
      
      catch (IOException e1)
      
      {
      
      }
      
      finally
      
      {
      
       try
      
       {
      
      in.close();
      
       }
      
       catch (IOException e2)
      
       {
      
       }
      
      }
      
      //以下分析输出值,得到物理网卡
      
      String rtValue = sb.substring(0);
      
      int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
      
      while(i>0)
      
      {
      
       rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
      
       address.add(rtValue.substring(0,18));
      
       i = rtValue.indexOf("Physical Address. . . . . . . . . :");
      
      }
      
      return address;
      
       }
      
       public static void main(String[] args)
      
       {
      
      List address = ProcessBuilderShow.getPhysicalAddress();
      
      for(String add:address)
      
      {
      
       System.out.printf("物理网卡地址:%s%n", add);
      
      }
      
       }
      
      }

     

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告