<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

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

    Tiger系列三:Annotation第一部分:使用內置的Annotation
    Tiger系列四:Annotation第二部分:定制Annotation
    Tiger系列五:訪問環境變量和調用子進程

    System.getenv()方法可以方便的訪問平臺的環境變量,但從一開始就遭到反對而被拋棄,因為該方法違背了“編寫一次,隨處運行”的原則。在Tiger版本中,又可以使用該方法了。

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

    ?

    1 訪問環境變量

    System.getenv() 有兩種方法:

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

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

    輸出的結果可能是:

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

    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() 方法創建本機進程,該方法仍然有效,但是因為使用 String 數組作為參數、以 File 參數作為工作目錄,所以定制子進程比較困難

    l???????? 使用 新的 ProcessBuilder 可以簡化這個過程

    l???????? 下面是一個啟動 EditPlus 的簡單的例子:

    public?class ProcessTest?{
    ???????
    public?static?voidmain(String[]?args)?throws
    IOException?{
    ??????????Process?p
    =?newProcessBuilder(“C:\\ProgramFiles\\EditPlus2
    \\editplus.exe”).start();
    ???????}
    }
    l???????? 下面是在執行命令時指定參數的例子:
    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() 方法改變進程的工作目錄, 使用 environment() 方法在進程空間中添加和刪除環境變量 ,下面是來自 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 閱讀(267) 評論(0)  編輯  收藏 所屬分類: Tiger

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

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

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    IT風云人物

    文檔

    朋友

    相冊

    經典網站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成高清在线播放| 国产一级a毛一级a看免费视频| 99热这里只有精品免费播放| 久久精品亚洲福利| 一级毛片在线播放免费| 亚洲国产人成精品| 久久www免费人成精品香蕉| 久久精品亚洲男人的天堂| 二个人看的www免费视频| 亚洲中文字幕无码日韩| 成人性生交大片免费看中文| 久久久久亚洲精品无码系列| 无码午夜成人1000部免费视频| 久久亚洲精品成人AV| 免费国产a理论片| 亚洲一区二区三区免费观看| 亚洲无圣光一区二区| 国产成人免费高清激情视频| 久久亚洲精品11p| 精品国产亚洲男女在线线电影 | 久久亚洲国产伦理| 免费福利网站在线观看| 精品国产日韩亚洲一区91| 亚洲国产精品成人久久蜜臀| 日韩精品无码免费专区午夜不卡| 亚洲精品天天影视综合网| 最近的免费中文字幕视频| 猫咪免费观看人成网站在线| 67194成是人免费无码| 国产精品观看在线亚洲人成网| 亚洲日韩精品无码一区二区三区| 无码中文字幕av免费放dvd| 亚洲日本VA午夜在线电影| 国产成人亚洲精品影院| 最近最新高清免费中文字幕| 亚洲欧美日韩自偷自拍| 亚洲女久久久噜噜噜熟女| 99爱在线精品免费观看| 一本久久免费视频| 亚洲精品国产福利一二区| 毛片无码免费无码播放 |