Environment Variables in Minitab
Environment variables are a universal mechanism for conveying configuration information to Unix programs. Let’s look at how to set, get, and list environment variables in Java.
import java.util.Map;
public class EnvironmentVariables {
public static void main(String[] args) {
// To set a key/value pair, use System.setProperty()
// To get a value for a key, use System.getenv()
// Note that System.getenv() returns null if the key isn't present in the environment
System.setProperty("FOO", "1");
System.out.println("FOO: " + System.getenv("FOO"));
System.out.println("BAR: " + System.getenv("BAR"));
// Use System.getenv() to get all key/value pairs in the environment
// This returns a Map<String, String>
// Here we print all the keys
System.out.println();
Map<String, String> env = System.getenv();
for (String key : env.keySet()) {
System.out.println(key);
}
}
}
Running the program shows that we pick up the value for FOO
that we set in the program, but that BAR
is null.
$ java EnvironmentVariables
FOO: null
BAR: null
The list of keys in the environment will depend on your particular machine.
PATH
JAVA_HOME
USER
...
If we set BAR
in the environment first, the running program picks that value up.
$ export BAR=2
$ java EnvironmentVariables
FOO: null
BAR: 2
...
Note that in Java, System.setProperty()
sets a system property, which is different from an environment variable. Environment variables are typically set outside of the Java program and cannot be modified at runtime. The System.getenv()
method retrieves environment variables, while System.getProperty()
retrieves system properties.
To actually set an environment variable in Java, you would need to use a platform-specific method or execute a system command, which is generally not recommended as it can affect other processes on the system.