我的jdk是1.4的,请问怎么能获得系统的环境变量(不是JVM的)

解决方案 »

  1.   

    System.getProperties().list(System.out);
      

  2.   

    用System.getenv吧,
    System.getProperty更多的是列出Jvm的环境import java.util.Map;
    import java.util.Set;
    import java.util.Iterator;
    public class EnvironmentVar{
      public static void main(String args[]){
        Map<String,String> envVarMap=null;
        Set<String> envKey=null;
        envVarMap=System.getenv();
        envKey=envVarMap.keySet();
        
        for(Iterator<String> iter=envKey.iterator() ; iter.hasNext() ; ){
          String key=iter.next();
          System.out.println(key+" : "+envVarMap.get(key));
        }
      }
    }
      

  3.   

    System.setProperty
    System.getProperty
      

  4.   

    System.getProperties().list(System.out);
    System.getenv
      

  5.   

    请查看Java System类, JDK 帮助手册上有详细说明
      

  6.   

    我发过一个这样的帖子,
        http://community.csdn.net/Expert/topic/4782/4782531.xml?temp=.8347895
    没人理,再贴一遍吧。1. 用法示例:
    1)java TestSystemProperties prop
      列出所有properties(属性变量)
    2)java TestSystemProperties env
      列出所有environment(环境变量)
    3)java TestSystemProperties prop user
      列出所有包含“user”字符的properties
    3)java TestSystemProperties env user
      列出所有包含“user”字符的environment variable2. 代码import java.util.*;public class TestSystemProperties {
    public static void main(String[] args) throws Exception {    if (args.length == 0) {
            System.out.println("usage: java TestSystemProperty <env|prop>");
            System.exit(0);
            }    if (args[0].length() >=3 && args[0].substring(0, 3).equals("env")) {
            if (args.length > 1) {
                printEnvironments(args[1]);
                } else {
                printEnvironments("");
                }
                
            } else if (args[0].length() >=4 && args[0].substring(0, 4).equals("prop")) {
            if (args.length > 1) {
                printProperties(args[1]);
                } else {
                printProperties("");
                }
            } else {
            System.out.println("usage: java TestSystemProperty <env|prop>");
            }
        }static void printProperties(String keyProp){
        if (keyProp.equals("")) {
            Properties properties =
                System.getProperties();
            Enumeration names = 
                properties.propertyNames();        while (names.hasMoreElements()) {
                String name = (String)names.nextElement();
                String property = System.getProperty(name);
                System.out.println(name + ":\t" + property);
                }
            } else {
            String property =
                System.getProperty(keyProp);
            if (property != null) {
                System.out.println(keyProp + ":\t" + property);
                } else {
                Properties properties =
                    System.getProperties();
                Enumeration names = 
                    properties.propertyNames();
                while (names.hasMoreElements()) {
                    String name = (String)names.nextElement();
                    if (name.toLowerCase().contains(keyProp)) {
                        property = System.getProperty(name);
                        System.out.println(name + ":\t" + property);
                        }
                    }
                }
            }
        }static void printEnvironments(String keyEnv) {
        if (keyEnv.equals("")) {
            Map<String, String> env =
                System.getenv();
            Set<String> keys = env.keySet();
                
            int i = 0;
            for (Iterator<String> itr = keys.iterator(); itr.hasNext();) {
                i++;
                String key = itr.next();
                String value = env.get(key);
                System.out.println(key + ": " + value);
                }
            System.out.println("\n***total " + i + " items.***");
            } else {
            String value = System.getenv(keyEnv);
            if (value != null) {
                System.out.println(keyEnv + ": " + value);
                } else {
                Map<String, String> env =
                    System.getenv();
                Set<String> keys = env.keySet();
                for (Iterator<String> itr = keys.iterator(); itr.hasNext();) {
                    String key = itr.next();
                    if (key.toLowerCase().contains(keyEnv)) {
                        value = env.get(key);
                        System.out.println(key + ": " + value);
                        }
                    }
                }
            }
        }
    }
      

  7.   

    关键是你想得到什么,有的属性也不需要使用jni:)
      

  8.   

    System.getProperties().list(System.out);
      

  9.   

    取决于你的操作系统,如果是Windows的话,可以使用Runtime类调用cmd /c set命令Properties envVariables = new Properties();
    Process process = Runtime.getRuntime().exec("cmd /c set");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(process.getInputStream()));
    for(String line = null; (line = in.readLine())!= null;){
       StringTokenizer tokenizer = new StringTokenizer(line, "=");
       envVariables.put(tokenizer.nextToken(), tokenizer.nextToken());
    }
      
    in.close();
    process.destroy();