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 |
用戶的當前工作目錄 |
獲取的代碼示例:
- public class SystemProperty {
- public static void main(String args[]) {
- System.out.println("java_vendor:" + System.getProperty("java.vendor"));
- System.out.println("java_vendor_url:"
- + System.getProperty("java.vendor.url"));
- System.out.println("java_home:" + System.getProperty("java.home"));
- System.out.println("java_class_version:"
- + System.getProperty("java.class.version"));
- System.out.println("java_class_path:"
- + System.getProperty("java.class.path"));
- System.out.println("os_name:" + System.getProperty("os.name"));
- System.out.println("os_arch:" + System.getProperty("os.arch"));
- System.out.println("os_version:" + System.getProperty("os.version"));
- System.out.println("user_name:" + System.getProperty("user.name"));
- System.out.println("user_home:" + System.getProperty("user.home"));
- System.out.println("user_dir:" + System.getProperty("user.dir"));
- System.out.println("java_vm_specification_version:"
- + System.getProperty("java.vm.specification.version"));
- System.out.println("java_vm_specification_vendor:"
- + System.getProperty("java.vm.specification.vendor"));
- System.out.println("java_vm_specification_name:"
- + System.getProperty("java.vm.specification.name"));
- System.out.println("java_vm_version:"
- + System.getProperty("java.vm.version"));
- System.out.println("java_vm_vendor:"
- + System.getProperty("java.vm.vendor"));
- System.out
- .println("java_vm_name:" + System.getProperty("java.vm.name"));
- System.out.println("java_ext_dirs:"
- + System.getProperty("java.ext.dirs"));
- System.out.println("file_separator:"
- + System.getProperty("file.separator"));
- System.out.println("path_separator:"
- + System.getProperty("path.separator"));
- System.out.println("line_separator:"
- + System.getProperty("line.separator"));
- }
=======================================================================
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也可以使用如下代碼:
- Properties sysProperties = System.getProperties();
- //Specify proxy settings
- sysProperties.put("proxyHost", "myhost");//myhost設置爲代理的地址
- sysProperties.put("proxyPort", "myport");//myport設置爲代理端口
- 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