OMG,到底在尋找什么..................
          (構(gòu)造一個(gè)完美的J2EE系統(tǒng)所需要的完整知識(shí)體系)
          posts - 198,  comments - 37,  trackbacks - 0

          Tiger系列一:從XML中加載屬性
          Tiger系列二:Tiger語言新特性

          Tiger系列三:Annotation第一部分:使用內(nèi)置的Annotation
          Tiger系列四:Annotation第二部分:定制Annotation
          Tiger系列五:訪問環(huán)境變量和調(diào)用子進(jìn)程

          System.getenv()方法可以方便的訪問平臺(tái)的環(huán)境變量,但從一開始就遭到反對(duì)而被拋棄,因?yàn)樵摲椒ㄟ`背了“編寫一次,隨處運(yùn)行”的原則。在Tiger版本中,又可以使用該方法了。

          訪問平臺(tái)專有信息并不是一件容易的事。雖然可以使用 Runtime.exec() 創(chuàng)建進(jìn)程,但由于平臺(tái)之間的差異,構(gòu)造參數(shù)集常常令人頭痛不已。 Tiger 提供了新的 ProcessBuilder 類,使得訪問平臺(tái)專有信息更加容易。

          ?

          1 訪問環(huán)境變量

          System.getenv() 有兩種方法:

          1 )指定環(huán)境變量名來獲得環(huán)境變量值,如下面的例子:

          public?class EnvTest?{
          ???????
          public?static?void
          main(String[]?args)?{
          ???????????System.out.println(System.getenv(
          " JAVA_HOME "
          ));
          ???????}
          }

          輸出的結(jié)果可能是:

          c:\jdk1. 5
          2 返回所有環(huán)境變量的 Map 對(duì)象,下面的例子輸出所有環(huán)境變量名和值:

          public?class?EnvDump?{
          ???????
          public?static?void
          ?main(String[]?args)?{
          ??????????????
          for
          ?(Entry?entry?:?System.getenv().entrySet())?{
          ????????????????System.out.println(entry.getKey()?
          +?"="?+
          ?entry.getValue());
          ??????????????}
          ???????}
          }


          2
          ProcessBuilder

          l???????? 早期 Java 版本允許使用 Runtime . exec() 方法創(chuàng)建本機(jī)進(jìn)程,該方法仍然有效,但是因?yàn)槭褂?/span> String 數(shù)組作為參數(shù)、以 File 參數(shù)作為工作目錄,所以定制子進(jìn)程比較困難

          l???????? 使用 新的 ProcessBuilder 可以簡(jiǎn)化這個(gè)過程

          l???????? 下面是一個(gè)啟動(dòng) EditPlus 的簡(jiǎn)單的例子:

          public?class ProcessTest?{
          ???????
          public?static?voidmain(String[]?args)?throws
          IOException?{
          ??????????Process?p
          =?newProcessBuilder(“C:\\ProgramFiles\\EditPlus2
          \\editplus.exe”).start();
          ???????}
          }
          l???????? 下面是在執(zhí)行命令時(shí)指定參數(shù)的例子:
          public?class?ProcessTest?{
          ???????
          public?static?void?main(String[]?args)?throws
          ?IOException?{
          ??????????????Process?p?
          =?new?ProcessBuilder("ping",?"sina.com.cn"
          ).start();
          ??????????????InputStream?is?
          =
          ?p.getInputStream();
          ??????????????BufferedReader?br?
          =?new?BufferedReader(new
          ?InputStreamReader(is));
          ??????????????String?line;
          ??????????????
          while?((line?=?br.readLine())?!=?null
          )?{
          ????????????????System.out.println(line);
          ??????????????}
          ???????}
          }

          ProcessBuilder 提供了 directory() 方法改變進(jìn)程的工作目錄, 使用 environment() 方法在進(jìn)程空間中添加和刪除環(huán)境變量 ,下面是來自 JDK5 的例子:
          ?ProcessBuilder?pb?=?new?ProcessBuilder("myCommand",?"myArg1",?"myArg2");
          ?Map
          <String,?String>?env?=
          ?pb.environment();
          ?env.put(
          "VAR1",?"myValue"
          );
          ?env.remove(
          "OTHERVAR"
          );
          ?env.put(
          "VAR2",?env.get("VAR1")?+?"suffix"
          );
          ?pb.directory(
          "myDir"
          );
          ?Process?p?
          =
          ?pb.start();
          posted on 2006-05-09 14:27 OMG 閱讀(269) 評(píng)論(0)  編輯  收藏 所屬分類: Tiger

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          IT風(fēng)云人物

          文檔

          朋友

          相冊(cè)

          經(jīng)典網(wǎng)站

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 寻乌县| 万盛区| 朝阳市| 阿巴嘎旗| 安乡县| 称多县| 河西区| 江孜县| 邵东县| 治县。| 德惠市| 喀喇沁旗| 阿克陶县| 平陆县| 碌曲县| 海原县| 冷水江市| 莲花县| 泽库县| 霍邱县| 新晃| 营口市| 太康县| 贡嘎县| 鄂伦春自治旗| 安义县| 德保县| 大邑县| 罗甸县| 普宁市| 格尔木市| 德令哈市| 涿鹿县| 岳普湖县| 和硕县| 古蔺县| 武鸣县| 凌源市| 安康市| 广宁县| 石楼县|