 |
操作系统: 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, 其他方面, 。
|
| |
|
| |
|
| |
|
|