【永恒的瞬間】
          ?Give me hapy ?
           Java中獲取JVM環境變量是很簡單的,下面兩句就打印出了所有的JVM環境變量:
                    Properties p = System.getProperties();
                    p.list(System.out);
                如果想獲得指定Key的值,則可以這樣:System.getProperty(key);
                但如果想獲取系統環境變量,就要想別的辦法了。下面的代碼可以實現:

          package com.zhj.tools;

          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.util.Properties;

          /**
          * 文件名:GetProperty.java
          * 描述: 取得當前系統變量的程序。
          *    java中的System.getProperty只是針對JVM來的,如果要取得系統環境變量,還要用到系統相關的函數。本程序先從JVM中取Key對應的Value,如果取不到再取系統環境變量
          * 作者: 翟海軍
          */
          public class GetProperty {

          /**
             * @param args
             * @throws IOException
             */
          public static void main(String[] args) throws IOException {
             // TODO Auto-generated method stub
             String key=null;
             if (args.length>0) key=args[0];
             String s=getProperty(key);
             System.out.println(s);
            
          }

          public static String getProperty(String key) throws IOException{
             String value=null;
             Properties pp = null;
             if (key == null || key.length()<1) {
              pp = System.getProperties();
              System.out.println("未指定key,現列出所有JVM環境變量:");
              pp.list(System.out);
              value="未指定key,上面是所有JVM環境變量:";
              return value;
             } else {
              String s = null;
              value = System.getProperty(key);
              if (s == null) {
               String OS = System.getProperty("os.name").toLowerCase();
               Process p = null;
               if (OS.indexOf("windows") > -1) {
                p = Runtime.getRuntime().exec("cmd /c set"); // Windows系列
               } else if (OS.indexOf("linux") > -1 || OS.indexOf("aix") > -1
                 || OS.indexOf("unix") > -1) {
                p = Runtime.getRuntime().exec("/bin/sh -c set"); // Unix系列
               }
               BufferedReader br = new BufferedReader(new InputStreamReader(p
                 .getInputStream()));
               String line;
               while ((line = br.readLine()) != null) {
                int i = line.indexOf("=");
                if (i > -1) {
                 if(key.equalsIgnoreCase(line.substring(0, i))){
                  value = line.substring(i + 1);
                  break;
                 }      
                }
               }
              }
             
             }
             return value;
          }

          }

          posted on 2007-04-13 08:42 ???MengChuChen 閱讀(2521) 評論(0)  編輯  收藏 所屬分類: java_code
          主站蜘蛛池模板: 河西区| 叶城县| 冕宁县| 廊坊市| 柳林县| 浮山县| 赤峰市| 莱芜市| 营口市| 莱阳市| 定日县| 巴彦淖尔市| 颍上县| 岑溪市| 紫金县| 云南省| 和静县| 陕西省| 土默特右旗| 金沙县| 德格县| 红河县| 德兴市| 浮梁县| 克什克腾旗| 长乐市| 图木舒克市| 晴隆县| 兴城市| 蒙自县| 苏尼特左旗| 新竹市| 上犹县| 白河县| 绩溪县| 津市市| 宜良县| 高雄县| 黄骅市| 铜山县| 五河县|