Printing the Windows environment variables and their values to System Console (and file) using Java
Kushal Paudyal February 16th, 2012.This post has 172 views

In the following Java tool, I have demonstrated two things:
- How to print all the Windows Variables using Java runtime onto the System Console. (You can modify this code to print those variables and their values to a file. See our previous tutorial for some help on printing String to file)
- How to get the value of a specific windows variable using Java runtime
This program is capable of identifying few variations of Windows OS. The following OS are supported by this code:
- Windows NT
- Windows 2000
- Windows XP
- Windows 9* (e.g. Windows 95, Windows 98
Here is the source code:
package com.kushal.tools;
/**
* @Author Kushal Paudyal
* Created on 2012-01-30
* Last Modified on 2012-01-30
*
* Tool to print the windows environment variables.
* Can also be used to print the value of a specific
* windows variable.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Properties;
public class WindowsEnvironmentVariablesPrinter {
public static void main(String[] args) {
Properties prop = WindowsEnvironmentVariablesPrinter
.getEnvironmentVariables();
/**
* Print out all the properties to System Console
*/
prop.list(System.out);
/**
* Print the value of a specific variable.
* In this case, we will be printing the value of "TEMP"
* variable.
*/
System.out.println("\n\nValue of varible TEMP is : "
+ prop.getProperty("TEMP"));
}
public static Properties getEnvironmentVariables() {
Process myProcess = null;
Properties envVars = new Properties();
try {
/**Get a runtime**/
Runtime runtime = Runtime.getRuntime();
/**Get the String value of operating system name*/
String operatingSystem = System.getProperty("os.name").toLowerCase();
/**
* If it is Windows 9 Operating System, execute the command
* 'command.com /c set'
*/
if (operatingSystem.indexOf("windows 9") > -1) {
myProcess = runtime.exec("command.com /c set");
}
/**
* If it is Windows NT or Windows 2000 or Windows XP, execute the command
* 'cmd.exe /c set'
*/
else if ((operatingSystem.indexOf("nt") > -1)
|| (operatingSystem.indexOf("windows 2000") > -1)
|| (operatingSystem.indexOf("windows xp") > -1)) {
myProcess = runtime.exec("cmd.exe /c set");
}
/**
* If does not match any of those, just run the command
* 'env'
*/
else {
myProcess = runtime.exec("env");
}
/**
* The following block reads the output and creates a
* key value pair for the environment variables.
*/
BufferedReader br = new BufferedReader(new InputStreamReader(
myProcess.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
int idx = line.indexOf('=');
String key = line.substring(0, idx);
String value = line.substring(idx + 1);
envVars.setProperty(key, value);
}
} catch (Throwable e) {
e.printStackTrace();
}
return envVars;
}
}
The output of this program when I ran this on my PC:
-- listing properties -- UATDATA=C:\WINXP\system32\CCM\UATData\D9F8C39... CLIENTNAME=Console PROCESSOR_ARCHITECTURE=x86 NUT_SUFFIXED_SEARCHING=1 TSMPATH=C:\Program Files\ThinkPad\UltraNav Ut... FP_NO_HOST_CHECK=NO RATL_RTHOME=C:\Program Files\Rational\Rational Test DB2TEMPDIR=C:\PROGRA~1\IBM\SQLLIB\ ANT_HOME=C:\build2\tools\apache-ant-1.7.1 TVTPYDIR=C:\Program Files\Common Files\Lenovo\... MQ_JAVA_INSTALL_PATH=C:\Program Files\IBM\WebSphere MQ\Java TMP=C:\DOCUME~1\billgates\LOCALS~1\Temp TVT=C:\Program Files\Lenovo CLEARCASE_PRIMARY_GROUP=NWIE\UG$ICAClearUsers COMPUTERNAME=BILLGATESCOMPUTER M2=C:\maven\bin OS=Windows_NT IBMLDAP_ALTHOME=C:\Program Files\Rational\common\codeset RR=C:\Program Files\Lenovo\Rescue and Re... PROMPT=$P$G notestmp1=C:\DOCUME~1\billgates\LOCALS~1\Temp\not... SystemDrive=C: TPTP_AC_HOME=C:\Program Files\IBM\SDPShared\plugin... HOMEDRIVE=C: LOGONSERVER=\\PMM0201 PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 5, Gen... ProgramFiles=C:\Program Files DB2INSTANCE=DB2 NUMBER_OF_PROCESSORS=4 TEMP=C:\DOCUME~1\billgates\LOCALS~1\Temp USERDOMAIN=MSOFT M2_HOME=C:\maven INCLUDE=C:\PROGRA~1\IBM\SQLLIB\INCLUDE;C:\PRO... NUTSUFFIX=1 HOME=C:\Documents and Settings\billgates MQ_JAVA_DATA_PATH=C:\Program Files\IBM\WebSphere MQ TMPDIR=C:\DOCUME~1\billgates\LOCALS~1\Temp SMA=C:\Program Files\ThinkVantage\SMA\ IBM_JAVA_COMMAND_LINE=C:\Program Files\IBM\SDP\jdk\jre\bin\... PROCESSOR_LEVEL=6 USERDNSDOMAIN=NWIE.NET VSEDEFLOGDIR=C:\Documents and Settings\All Users\A... Path=C:\Program Files\IBM\WebSphere MQ\Jav... SESSIONNAME=Console USERNAME=billgates LIB=;C:\PROGRA~1\IBM\SQLLIB\LIB PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JS... DEFLOGDIR=C:\Documents and Settings\All Users\A... ComSpec=C:\WINXP\system32\cmd.exe SystemRoot=C:\WINXP TVTCOMMON=C:\Program Files\Common Files\Lenovo windir=C:\WINXP PROBEKIT_HOME=C:\Program Files\IBM\SDPShared\plugin... PROCESSOR_REVISION=2505 USERPROFILE=C:\Documents and Settings\billgates CommonProgramFiles=C:\Program Files\Common Files APPDATA=C:\Documents and Settings\billgates\App... HOMEPATH=\Documents and Settings\billgates TISDIR=C:\Program Files\Rational\common JAVA_HOME=C:\Program Files\IBM\SDP\runtimes\bas... ALLUSERSPROFILE=C:\Documents and Settings\All Users CLASSPATH=C:\Program Files\IBM\WebSphere MQ\Jav... SWSHARE=C:\SWSHARE Value of varible TEMP is : C:\DOCUME~1\billgates\LOCALS~1\Temp
Sanjaal.com is owned and maintained by Sanjaal Corps, Nepal. The company offers Webhosting and Domain Registration Services, IT Solutions and Business Analysis. Sanjaal.com website features H1B Visa Information, Entertainment Portal, Link Directory Service, Free Articles, Free Open Source Tutorials on Java and J2EE Platform, Digital Photography, High Resolution Picture Gallery and Free Reliable Image Hosting Services. Future plan includes Open Source Software Development Portal, Technical Solutions and Customizable Movie and Music Arena. We would be introducing data backup, data recovery, data hosting and voip solutions. Stay free from phishing – our website does not ask for your credit card and banking information. Happy Surfing!
- Java Runtime
- Comments(0)