J2SE5.0新特性之ProcessBuilder
這個(gè)例子使用了J2SE5.0的ProcessBuilder類執(zhí)行外部的程序,相對(duì)于?Runtime.exec?,它更方便,可以設(shè)置環(huán)境變量等。這里使用它在windows下讀取物理網(wǎng)卡的地址
- 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<String>?getPhysicalAddress()
- ????{
- ????????Process?p?=?null;
- ????????//物理網(wǎng)卡列表
- ????????List<String>?address?=?new?ArrayList<String>();
- ????????try
- ????????{
- ????????????//執(zhí)行ipconfig?/all命令
- ????????????p?=?new?ProcessBuilder("ipconfig",?"/all").start();
- ???????? }
- ????????catch?(IOException?e)
- ????????{
- ????????????return??address;
- ???????? }
- ????????byte[]?b?=?new?byte[1024];
- ????????StringBuffer?sb?=?new?StringBuffer();
- ????????//讀取進(jìn)程輸出值
- ????????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)
- ????????????{
- ???????????? }
- ???????? }
- ????????//以下分析輸出值,得到物理網(wǎng)卡
- ????????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<String>?address?=?ProcessBuilderShow.getPhysicalAddress();
- ????????for(String?add:address)
- ????????{
- ????????????System.out.printf("物理網(wǎng)卡地址:%s%n",?add);
- ???????? }
- ???? }
- }
posted on 2006-08-22 10:45 Binary 閱讀(125) 評(píng)論(0) 編輯 收藏 所屬分類: j2se