软件注册站
热情软件屋

 
在Java中如何可以取得任意一个环境变量的值
编号: QA004246    
建立日期: 2001年6月7日 最后修改日期: 2004年9月7日
所属类别: 其他语言 - 其他方面
   
    操作系统: Any OS
    编程工具: Java, JDK1.3
    问题: 在Java中如何可以取得任意一个环境变量的值,如TEMP=C;\Temp.
    在JDK1.3之前,可以用getenv(key)来做到.但在JDK1.3中,getenv()已被作废,而getProperty(key)只能取得系统预先定义的一小部分环境变量值。如果不用native函数,有什么好办法?百思不得其解,望高手指教。(Feng Dihai)
   
    在jdk1.2中,你如果使用getProperty(key) 来取得环境变量的值,而且是非预定环境变量值,那么必须在启动程序时制定那些环境变量的值,使用java执行器的-D选项!如:
     java -DTEMP=c:\temp XXX.java
    
    kfstone的意见:
    package com.mammox.xyupload;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.util.Enumeration;
    import java.util.Properties;
    
    public class GetEnv {
    public Properties getEnvProperties() throws Exception {
    Properties envProps = new Properties();
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("cmd /c set>temp.env");
    Thread.sleep(500);
    FileInputStream in = new FileInputStream("temp.env");
    envProps.load(in);
    in.close();
    new File("temp.env").delete();
    return envProps;
    }
    
    public static void main(String[] args) throws Exception
    {
    GetEnv env = new GetEnv();
    Properties envProps = env.getEnvProperties();
    Enumeration names = envProps.propertyNames();
    for (Enumeration e = names ; e.hasMoreElements() ;) {
    String name = (String)e.nextElement();
    System.out.println( name + " = " + envProps.getProperty(name));
    }
    }
    }

    

此问题由chbest回答。

附加关键字:编程, 源程序, programming, source code, 其他语言, asm, vba, vbscript, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio