Showing posts with label system properties. Show all posts
Showing posts with label system properties. Show all posts

Saturday, 28 May 2011

Environment variables in java

Unlike C or C++, there is no getEnv() method in Java.

Part of the reason is that Java could conceivably be run on a platform that does not support the concept of environment variables. The expected way to pass environment-variable-like values to a Java application is with the -Dname=value syntax seen a few times in earlier chapters. Using the -D syntax on the java command line effectively adds the specified name and value to the list of system properties. Therefore, if you need to send a system environment variable named SomeEnvVar to your Java code, you can include it on the command line like this:

java -Dsome.env.variable=$SomeEnvVar YourClass (Unix/Linux)

or

java -Dsome.env.variable=%SomeEnvVar% YourClass (Windows) 


Then you access the new system property as follows:

String some_value = System.getProperty ("some.env.variable"); 

Obviously, you can name the system property anything you want.



Sunday, 8 May 2011

How to Access System Properties?

This code example shows how to list all system properties, get/set the value of a system property:

import java.util.Enumeration;
import java.util.Properties;
//some logics....
//prints all the system properties onto the console
public static void listAllSystemProperties() {

//List All System Properties
Properties props = System.getProperties();
Enumeration enumeration = props.keys();
while (enumeration.hasMoreElements()) {
String propName = (String) enumeration.nextElement();
String propValue = (String)props.get(propName);
System.out.println(propName + " = " + propValue);
}


// Set a system property
String previousValue = System.setProperty("myjava.version", "5.0");
//Get a system property
String version = System.getProperty("myjava.version");
System.out.println("myjava.version=" + version);

}


Here is an example to get the working directory (which is the location in the file system from where the java command was invoked):

    String curDir = System.getProperty("user.dir");

A system property can be set or overridden by specifying the -D option to the java command when running your program.

    java -Dmyjava.version="5.0" MyApplication