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

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

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

    nighty

    折騰的年華
    posts - 37, comments - 143, trackbacks - 0, articles - 0

    關(guān)于Java命令行交互方式

    Posted on 2008-05-23 09:41 寒武紀 閱讀(4132) 評論(1)  編輯  收藏 所屬分類: Java
       普通的程序交互方式有命令行和GUI形式。對于GUI樣式,交互的設(shè)計可以多種多樣,但是Java做命令行交互,似乎存在著一些不足。
       命令行交互是傳統(tǒng)的交互方式,如果程序有時候需要在Unix或是Linux等系統(tǒng)上運動時,以這種方式出現(xiàn)的可能性就比較大。命令行包括
       輸入和回顯問題,一般是以行結(jié)束,或是以某個結(jié)束符為終命令終止標識。System.out 和System.err就用于標準的輸出和錯誤輸出,System.in用于標準的輸入接受,一般情況下都是指鍵盤。
       如果接受參數(shù)輸入,一般的程序結(jié)構(gòu)如下:
      
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.println(
    "==Please input password==:");
    String pass 
    = in.readLine();
       輸入的時候顯示屏自動進行輸入回顯。這個時候如果遇到輸入密碼等敏感數(shù)據(jù)的時候,就無法用*或是#這樣的符號進行回顯屏蔽,容易暴露安全問題。
       解決的可能想法:
       1.  通過監(jiān)聽鍵盤事件,對輸入的回顯進行截獲取,把回顯進行屏蔽,但是監(jiān)聽器如何知道何時是輸入密碼,何時是輸入普通數(shù)據(jù)?比較難以控制,而且這種監(jiān)聽應(yīng)該是線程化的,可能會存在一些意想不到的問題。
       2.  如果用純Java難以實現(xiàn),那么是否可以使用其它語言的功能進行補充,比如JNI,或是Windows下面的Dos腳本,Linux平臺的Shell腳本來進行補充。不過這樣就不太平臺無關(guān)了。
       3.  可能sun發(fā)現(xiàn)了這個不足之處,從1.6版本開始,增加了一個java.io.Console類,代表與當前 Java 虛擬機關(guān)聯(lián)的基于字符的控制臺設(shè)備,這個Console是對原來System.in這種不足的補充,提供了像readPassword()等這樣的實用方法,具體請參考API文檔,就是專門用于對敏感信息的讀取。但是這是基于Java1.6的,如果有些場景受限制,不能使用1.6,那么還是無法解決上面的問題。后來查閱了一下Console類的實現(xiàn)方式,想直接把它的實現(xiàn)方式移植到1.4.xx上是比較難的,因為用到了一些高版本的新特性。使用Console要注意的是:虛擬機是否具有控制臺取決于底層平臺,還取決于調(diào)用虛擬機的方式。如果虛擬機從一個交互式命令行開始啟動,且沒有重定向標準輸入和輸出流,那么其控制臺將存在,并且通常連接到鍵盤并從虛擬機啟動的地方顯示。如果虛擬機是自動啟動的(例如,由后臺作業(yè)調(diào)度程序啟動),那么它通常沒有控制臺。如果你在Eclipse里面啟動程序調(diào)用Console,那么通常是沒有控制臺,還是得從外部的命令行方式才能調(diào)用得到。
       總體想一下,感覺應(yīng)該還是從第2點出發(fā),犧牲掉一點通用性,這樣才能滿足這種功能需求。

    剛進場的時候戲就落幕

    Feedback

    # re: 關(guān)于Java命令行交互方式  回復  更多評論   

    2008-05-23 11:39 by 魔域私服
    http://www.zhaomysf.com.cn
    http://www.wmsifu.cn
    http://www.888807.com
    主站蜘蛛池模板: 国产成人久久精品亚洲小说| 亚洲精品国产精品| 精选影视免费在线 | 亚洲午夜AV无码专区在线播放| 羞羞视频免费网站含羞草| 成人国产mv免费视频| 免费国产在线精品一区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 二级毛片免费观看全程| 亚洲熟妇av一区二区三区| 在线观看片免费人成视频无码| 亚洲乱亚洲乱淫久久| 亚洲国产精品免费观看| 亚洲精品无播放器在线播放 | 亚洲av无码成人影院一区 | 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 在线视频网址免费播放| 亚洲AV无码一区二区三区DV| 在线看无码的免费网站| 亚洲中文字幕无码中文| 亚洲精品国产精品乱码不卡| 97在线免费观看视频| 亚洲男人电影天堂| 国产精品另类激情久久久免费| 亚洲精品国产日韩无码AV永久免费网| 亚洲精品成人无限看| 亚洲电影免费观看| 青青免费在线视频| 亚洲av无码乱码国产精品| 美女网站免费福利视频| 猫咪免费人成网站在线观看入口| 亚洲日本一区二区三区在线| 最近高清中文字幕无吗免费看| 综合一区自拍亚洲综合图区 | 亚洲精品成人无限看| 成年人视频在线观看免费| 两性色午夜免费视频| 亚洲国产情侣一区二区三区| 亚洲av成人一区二区三区在线观看| 久久免费福利视频| 色偷偷噜噜噜亚洲男人|