转:http://blog.csdn.net/weiyangcau/article/details/7617839
1.首先编写文件setenv.bat设置系统环境变量:
- echo %cd%
- set framework_home=%cd%
- echo %framework_home%
- wmic ENVIRONMENT create name="framework_home",username="<system>",VariableValue="%framework_home%"
Note:
此处假设framework_home为要添加的系统环境变量,且其值为当前路径。Windows系统有两种环境变量:用户变量和系统变量。上面设置的是系统变量。
2.编写Java程序读取上面设置的系统环境变量:
- package test.util;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- class StreamDrainerThread implements Runnable
- {
- private InputStream ins;
- public static String environmentValue;
- public StreamDrainerThread(InputStream ins)
- {
- this.ins = ins;
- }
- public void run()
- {
- try
- {
- BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
- String line = null;
- while ((line = reader.readLine()) != null)
- {
- if (!line.trim().equals(""))
- {
- environmentValue = line;
- }
- }
- } catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- public class WMICJava
- {
- public static void main(String[] args) throws IOException
- {
- String[] cmd = new String[]
- { "cmd.exe", "/C", "wmic ENVIRONMENT where \"name=\'framework_home\'\" get VariableValue" };
- try
- {
- Process process = Runtime.getRuntime().exec(cmd);
- StreamDrainerThread streamDrainer = new StreamDrainerThread(process.getInputStream());
- new Thread(streamDrainer).start();
- process.getOutputStream().close();
- process.waitFor();
- System.out.println("Environment Parameter OATS_HOME is " + StreamDrainerThread.environmentValue);
- } catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }