java 設置代理

ava.version

Java 運行時環境版本

java.vendor

Java 運行時環境供應商

java.vendor.url

Java 供應商的 URL

java.home

Java 安裝目錄

java.vm.specification.version

Java 虛擬機規範版本

java.vm.specification.vendor

Java 虛擬機規範供應商

java.vm.specification.name

Java 虛擬機規範名稱

java.vm.version

Java 虛擬機實現版本

java.vm.vendor

Java 虛擬機實現供應商

java.vm.name

Java 虛擬機實現名稱

java.specification.version

Java 運行時環境規範版本

java.specification.vendor

Java 運行時環境規範供應商

java.specification.name

Java 運行時環境規範名稱

java.class.version

Java 類格式版本號

java.class.path

Java 類路徑

java.library.path

加載庫時搜索的路徑列表

java.io.tmpdir

默認的臨時文件路徑

java.compiler

要使用的 JIT 編譯器的名稱

java.ext.dirs

一個或多個擴展目錄的路徑

os.name

操作系統的名稱

os.arch

操作系統的架構

os.version

操作系統的版本

file.separator

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

path.separator

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

line.separator

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

user.name

用戶的賬戶名稱

user.home

用戶的主目錄

user.dir

用戶的當前工作目錄

 

 

獲取的代碼示例:

 

[java] view plaincopy
  1. public class SystemProperty {  
  2.     public static void main(String args[]) {     
  3.     System.out.println("java_vendor:" + System.getProperty("java.vendor"));     
  4.     System.out.println("java_vendor_url:"     
  5.              + System.getProperty("java.vendor.url"));     
  6.     System.out.println("java_home:" + System.getProperty("java.home"));     
  7.     System.out.println("java_class_version:"     
  8.              + System.getProperty("java.class.version"));     
  9.     System.out.println("java_class_path:"     
  10.             + System.getProperty("java.class.path"));     
  11.     System.out.println("os_name:" + System.getProperty("os.name"));     
  12.     System.out.println("os_arch:" + System.getProperty("os.arch"));     
  13.     System.out.println("os_version:" + System.getProperty("os.version"));     
  14.     System.out.println("user_name:" + System.getProperty("user.name"));     
  15.     System.out.println("user_home:" + System.getProperty("user.home"));     
  16.     System.out.println("user_dir:" + System.getProperty("user.dir"));     
  17.     System.out.println("java_vm_specification_version:"     
  18.             + System.getProperty("java.vm.specification.version"));     
  19.     System.out.println("java_vm_specification_vendor:"     
  20.             + System.getProperty("java.vm.specification.vendor"));     
  21.     System.out.println("java_vm_specification_name:"     
  22.             + System.getProperty("java.vm.specification.name"));     
  23.     System.out.println("java_vm_version:"     
  24.             + System.getProperty("java.vm.version"));     
  25.     System.out.println("java_vm_vendor:"     
  26.             + System.getProperty("java.vm.vendor"));     
  27.     System.out     
  28.             .println("java_vm_name:" + System.getProperty("java.vm.name"));     
  29.     System.out.println("java_ext_dirs:"     
  30.             + System.getProperty("java.ext.dirs"));     
  31.     System.out.println("file_separator:"     
  32.             + System.getProperty("file.separator"));     
  33.     System.out.println("path_separator:"     
  34.             + System.getProperty("path.separator"));     
  35.     System.out.println("line_separator:"     
  36.             + System.getProperty("line.separator"));     
  37. }     

 

=======================================================================

System.setProperties( "proxySet", "true" ); 
System.setProperties( "proxyHost", "192.168.31.117" ); 
System.setProperties( "proxyPort", "80" ); 
這裏的proxySet,proxyHost,proxyPort等等這些系統的屬性名稱是從哪裏知道的?

  ——通過JDK文檔中對java.lang.system的static Properties getProperties()方法的介紹,可以獲知所有可用屬性的含義。

  ——根本沒有proxySet,proxyHost和proxyPort,這些是user defined property,那麼用戶定義的屬性如何起作用的?

***JavaVM實現Proxy的方法***

      要想讓java應用使用代理連接網絡,只需要設置一下system properties,有兩種方法可以設置,一是直接在java代碼裏面調用System.setProperty()方法,還有就是通過-D選項添加java虛擬機參數,如  java -Dhttp.proxyHost=192.168.254.254     -Dhttp.proxyPort=9000 ,當然也可以指定不使用代理訪問的網站或者主機,http.nonProxyHosts屬性指定不使用代理訪問的域。示例如下所示:

      System.setProperty("http.proxyHost", "192.168.254.254");

      System.setProperty("http.proxyPort", "9000");

      System.setProperty("http.nonProxyHosts", "localhost");

      如果你想使用ftp代理可以以相同的方式設定如下系統屬性:ftp.proxyHost, ftp.proxyPort, and 使用socket代理可以設定socks.ProxyHost socks.ProxyPort也可以使用如下代碼:

  1. Properties sysProperties = System.getProperties();   
  2. //Specify proxy settings   
  3. sysProperties.put("proxyHost", "myhost");//myhost設置爲代理的地址   
  4. sysProperties.put("proxyPort", "myport");//myport設置爲代理端口  
  5. sysProperties.put("proxySet",  "true");  

補充:

      Java網絡代理服務器環境變量
      Java 是一種面向對象的網絡語言,Java 的JVM已經提供了可以設置與網絡代理服務相關的環境變量,這些環境變量是按照鍵值名(Key)和值(Value)實現配置的。而這些環境變量與應用程序息息相關。比如:大家比較熟悉的classpath環境變量等。從表面上看,JVM的環境變量有點類似Windows的*.ini,該環境變量是按照純文本的格式存儲的。

      Http 代理服務是目前Internet環境下,應有最爲廣泛的代理服務。一般的網絡瀏覽器,如:微軟的IE和網景的Netscape都提供對Http代理服務的配置選項。在Java應用程序中,對Http代理服務的使用是通過配置Java 虛擬機的JVM的環境變量來實現的。針對http代理服務,Java 虛擬機提供瞭如下環境變量:

      http.proxySet 該環境變量用以設置應用程序是否使用http協議代理,值爲True/False。 
            注意:在設置環境變量時候,變量值True/False是按照字符串的形式進行設置的。 
      http.proxyHost 該環境變量用以設置應用程序所使用的http協議代理服務器的主機,比如:我們使用 http://172.14.10.34 作爲http的代理服務器主機。 
      http.proxyport 該環境變量用以設置應用程序所使用的http協議代理服務器的主機的端口號。比如:我們使用 http://172.14.10.34 的8080端口作爲http的代理服務器。

如:將Java應用程序的Http代理服務器設爲http://172.14.10.34,端口爲8080,可以使用如下代碼: 
String host="http://172.14.10.34";
String port="8080";
System.setproperty("http.proxySet", "true");
System.setproperty("http.proxyHost", host);
System.setproperty("http.proxyport", port);


一旦設置好了Java應用程序的http代理環境變量,Java應用程序就可以通過http代理服務透明地訪問與http相關的網絡資源。


轉載自:http://www.cnblogs.com/snailrun/archive/2012/08/25/2656791.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章