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

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

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

    隨筆-59  評論-31  文章-0  trackbacks-0

    1.java的System.getProperty()方法可以獲取的值

    java.version

    Java 運(yùn)行時(shí)環(huán)境版本

    java.vendor

    Java 運(yùn)行時(shí)環(huán)境供應(yīng)商

    java.vendor.url

    Java 供應(yīng)商的 URL

    java.home

    Java 安裝目錄

    java.vm.specification.version

    Java 虛擬機(jī)規(guī)范版本

    java.vm.specification.vendor

    Java 虛擬機(jī)規(guī)范供應(yīng)商

    java.vm.specification.name

    Java 虛擬機(jī)規(guī)范名稱

    java.vm.version

    Java 虛擬機(jī)實(shí)現(xiàn)版本

    java.vm.vendor

    Java 虛擬機(jī)實(shí)現(xiàn)供應(yīng)商

    java.vm.name

    Java 虛擬機(jī)實(shí)現(xiàn)名稱

    java.specification.version

    Java 運(yùn)行時(shí)環(huán)境規(guī)范版本

    java.specification.vendor

    Java 運(yùn)行時(shí)環(huán)境規(guī)范供應(yīng)商

    java.specification.name

    Java 運(yùn)行時(shí)環(huán)境規(guī)范名稱

    java.class.version

    Java 類格式版本號

    java.class.path

    Java 類路徑

    java.library.path

    加載庫時(shí)搜索的路徑列表

    java.io.tmpdir

    默認(rèn)的臨時(shí)文件路徑

    java.compiler

    要使用的 JIT 編譯器的名稱

    java.ext.dirs

    一個(gè)或多個(gè)擴(kuò)展目錄的路徑

    os.name

    操作系統(tǒng)的名稱

    os.arch

    操作系統(tǒng)的架構(gòu)

    os.version

    操作系統(tǒng)的版本

    file.separator

    文件分隔符(在 UNIX 系統(tǒng)中是“/”)

    path.separator

    路徑分隔符(在 UNIX 系統(tǒng)中是“:”)

    line.separator

    行分隔符(在 UNIX 系統(tǒng)中是“/n”)

    user.name

    用戶的賬戶名稱

    user.home

    用戶的主目錄

    user.dir

    用戶的當(dāng)前工作目錄

    2.java 通過System.getProperties()獲取系統(tǒng)參數(shù)

       Properties props=System.getProperties(); //系統(tǒng)屬性
       System.out.println("Java
    的運(yùn)行環(huán)境版本:"+props.getProperty("java.version"));
       System.out.println("Java
    的運(yùn)行環(huán)境供應(yīng)商:"+props.getProperty("java.vendor"));
       System.out.println("Java
    供應(yīng)商的URL"+props.getProperty("java.vendor.url"));
       System.out.println("Java
    的安裝路徑:"+props.getProperty("java.home"));
       System.out.println("Java
    的虛擬機(jī)規(guī)范版本:"+props.getProperty("java.vm.specification.version"));
       System.out.println("Java
    的虛擬機(jī)規(guī)范供應(yīng)商:"+props.getProperty("java.vm.specification.vendor"));
       System.out.println("Java
    的虛擬機(jī)規(guī)范名稱:"+props.getProperty("java.vm.specification.name"));
       System.out.println("Java
    的虛擬機(jī)實(shí)現(xiàn)版本:"+props.getProperty("java.vm.version"));
       System.out.println("Java
    的虛擬機(jī)實(shí)現(xiàn)供應(yīng)商:"+props.getProperty("java.vm.vendor"));
       System.out.println("Java
    的虛擬機(jī)實(shí)現(xiàn)名稱:"+props.getProperty("java.vm.name"));
       System.out.println("Java
    運(yùn)行時(shí)環(huán)境規(guī)范版本:"+props.getProperty("java.specification.version"));
       System.out.println("Java
    運(yùn)行時(shí)環(huán)境規(guī)范供應(yīng)商:"+props.getProperty("java.specification.vender"));
       System.out.println("Java
    運(yùn)行時(shí)環(huán)境規(guī)范名稱:"+props.getProperty("java.specification.name"));
       System.out.println("Java
    的類格式版本號:"+props.getProperty("java.class.version"));
       System.out.println("Java
    的類路徑:"+props.getProperty("java.class.path"));
       System.out.println("
    加載庫時(shí)搜索的路徑列表:"+props.getProperty("java.library.path"));
       System.out.println("
    默認(rèn)的臨時(shí)文件路徑:"+props.getProperty("java.io.tmpdir"));
       System.out.println("
    一個(gè)或多個(gè)擴(kuò)展目錄的路徑:"+props.getProperty("java.ext.dirs"));
       System.out.println("
    操作系統(tǒng)的名稱:"+props.getProperty("os.name"));
       System.out.println("
    操作系統(tǒng)的構(gòu)架:"+props.getProperty("os.arch"));
       System.out.println("
    操作系統(tǒng)的版本:"+props.getProperty("os.version"));
       System.out.println("
    文件分隔符:"+props.getProperty("file.separator"));   // unix 系統(tǒng)中是"/"
       System.out.println("
    路徑分隔符:"+props.getProperty("path.separator"));   // unix 系統(tǒng)中是":
       System.out.println("
    行分隔符:"+props.getProperty("line.separator"));   // unix 系統(tǒng)中是"/n
       System.out.println("
    用戶的賬戶名稱:"+props.getProperty("user.name"));
       System.out.println("
    用戶的主目錄:"+props.getProperty("user.home"));
       System.out.println("
    用戶的當(dāng)前工作目錄:"+props.getProperty("user.dir"));

     

    3.

    Java編寫通過代理訪問的應(yīng)用程序

    本技巧將向您講述如何編寫可通過代理訪問因特網(wǎng)上的Web服務(wù)器的Java應(yīng)用程序。在Java應(yīng)用程序中加入代理支持只需額外編寫幾行代碼,且不依賴任何安全性漏洞

    Java和代理結(jié)合起來的秘訣即在Java運(yùn)行時(shí)激活特定的系統(tǒng)屬性。這些屬性未被寫入正式文件,只是作為Java傳說的一部分在Java編程人員中秘傳。為了支持代理,Java應(yīng)用程序不僅需要指定代理本身的信息,而且需要指定用于認(rèn)證的用戶信息。在開始使用網(wǎng)際協(xié)議之前,您需要在程序中添加以下幾行代碼:
    //通知Java您要通過代理進(jìn)行連接
    System.getProperties().put("proxySet","true");

    //指定代理所在的服務(wù)器
    System.getProperties().put("proxyHost","myProxyMachineName");

    //指定代理監(jiān)聽的端口
    System.getProperties().put("proxyPort","85"); 

     有些代理在授權(quán)用戶訪問因特網(wǎng)之前,要求用戶輸入用戶名和口令。如果您使用位于防火墻之內(nèi)的Web瀏覽器,您就可能碰到過這種情況。以下是執(zhí)行認(rèn)證的方法:

    URLConnection
     connection=url.openConnection();
    String
       password="username:password";
    String
       encodedPassword=base64Encode(password);
    connection.setRequestProperty("Proxy-Authorization",encodedPassword); 

      這段代碼的思想是,您必須調(diào)整HTTP標(biāo)頭以發(fā)出用戶信息。這是通過調(diào)用setRequestProperty()來實(shí)現(xiàn)的。這種方法允許您在發(fā)出請求之前處理HTTP標(biāo)頭。HTTP要求用base64對用戶名和口令進(jìn)行編碼。幸運(yùn)的是,有一組公用域API,它們將代您執(zhí)行編碼(請參閱參考資源部分)。

      如您所見,在Java應(yīng)用程序中加入代理支持并不需要做多少工作。有了現(xiàn)在的知識,再做一點(diǎn)研究(您必須查明您的代理是如何處理您感興趣的協(xié)議以及如何進(jìn)行用戶認(rèn)證的),您就能用其他協(xié)議實(shí)現(xiàn)代理。
        HTTP代理:(例子)

    Properties props = System.getProperties();

               props.put("http.proxyHost""192.168.0.150");

               props.put("http.proxyPort""808");
      FTP代理

      ScottD.Taylor提出這個(gè)秘訣來處理FTP協(xié)議代理:

    defaultProperties.put("ftpProxySet","true");
    defaultProperties.put("ftpProxyHost","proxy-host-name");
    defaultProperties.put("ftpProxyPort","85"); 

      接下來您便可以通過以下代碼使用"ftp"協(xié)議訪問文件URL

    URL
     url=newURL("ftp://ftp.netscape.com/pub/navigator/3.04/windows/readme.txt"); 

      如果有人有使用其他網(wǎng)際協(xié)議代理的例子,我很想看看。

      注意:代碼示例(Example.java)僅在JDK1.1.4下測試過。

      后續(xù)技巧!

      對于仍在使用JDK1.1.7(配合WebSphere3.0)的開發(fā)人員而言,將proxyHostproxyPort設(shè)為系統(tǒng)屬性不起作用;conn.getInputStream()或者返回連接超時(shí),或者是找不到主機(jī)路徑。但是,我使用接受HostPort為參數(shù)的URL構(gòu)造函數(shù)解決了這一問題(使用我的代理主機(jī)和端口):

    public
     URL(String protocol,String host,int port,String file). 

      借助用戶名和口令進(jìn)行認(rèn)證的方法不起作用。應(yīng)將"Basic"置于認(rèn)證字符串的開頭;例如:

    String
     encodedPassword=base64Encode(password); 

      應(yīng)該是:

    String
     encodedPassword="Basic"+base64Encode(password); 

      您也不必用一個(gè)單獨(dú)的程序來進(jìn)行64位編碼。您可以使用sun.misc.BASE64Encoder()類。下面是完成這兩處改動之后的代碼:

    System.getProperties().put("proxySet","true");
    System.getProperties().put("proxyHost",proxyHost);
    System.getProperties().put("proxyPort",proxyPort);
    String
     authString="userid:password";
    String
     auth="Basic"+newsun.misc.BASE64Encoder().encode(authString.getBytes());
    URL
     url=newURL("http://java.sun.com/");
    URLConnection
     conn=url.openConnection();
    conn.setRequestProperty("Proxy-Authorization",auth); 

      下面是使用socks4代理服務(wù)器的方法:

    System.getProperty("socksProxySet",true);
    System.getProperty("socksProxyHost",proxyHostName);
    System.getProperty("socksProxyPort",proxyPort);
    Usually
     the proxyPort for Socks 4 is port 1080

    posted on 2012-01-04 14:37 RoyPayne 閱讀(8335) 評論(0)  編輯  收藏 所屬分類: java高級
    主站蜘蛛池模板: 羞羞视频免费网站含羞草| 亚洲码欧美码一区二区三区| 日本片免费观看一区二区| 亚洲AV无码无限在线观看不卡 | 久久精品无码专区免费| 亚洲一区二区三区四区在线观看| 日本三级2019在线观看免费| 瑟瑟网站免费网站入口| 亚洲国产老鸭窝一区二区三区 | 亚洲色成人网站WWW永久| 亚洲一区二区免费视频| 四虎一区二区成人免费影院网址| 亚洲国产日韩一区高清在线| 国产男女猛烈无遮挡免费视频| 中国国语毛片免费观看视频| 亚洲AV综合色区无码二区偷拍| 亚洲免费一区二区| 男女超爽刺激视频免费播放| av片在线观看永久免费| 日韩亚洲人成在线| 久久亚洲国产视频| 亚洲第一网站男人都懂| 青青青免费国产在线视频小草| 国产精品成人啪精品视频免费| 丁香婷婷亚洲六月综合色| 亚洲精品~无码抽插| 国产精品冒白浆免费视频| 日本免费大黄在线观看| 青青青视频免费观看| 亚洲娇小性xxxx色| 久久久久亚洲AV无码专区首| 亚洲国产精品国产自在在线| 毛片免费视频播放| 久久久久高潮毛片免费全部播放 | 免费特级黄毛片在线成人观看| 国产精品免费AV片在线观看| 一级免费黄色大片| 激情无码亚洲一区二区三区| 国产精品亚洲片夜色在线| 亚洲人成网站在线播放影院在线| 国产日产亚洲系列|