Java system properties

JVM holds default system properties which are very useful to get the JVM meta data i.e.; JVM version, Java version and underlying operating system proprties like OS version and OS name etc.

Each property is a key-value pair. Programmer can access a property's value with System.getProperty() method by passing the key as an argument.

SystemPropertiesDemo.java

public class SystemPropertiesDemo
{
public static void main(String args[])
{
System.out.println("user.dir: "+System.getProperty("user.dir"));
System.out.println("\nfile.separator: "+System.getProperty("file.separator"));
System.out.println("\njava.class.path: "+System.getProperty("java.class.path"));
System.out.println("\njava.class.version: "+System.getProperty("java.class.version"));
System.out.println("\njava.compiler: "+System.getProperty("java.compiler"));
System.out.println("\njava.ext.dirs: "+System.getProperty("java.ext.dirs"));
System.out.println("\njava.home: "+System.getProperty("java.home"));
System.out.println("\njava.io.tmpdir: "+System.getProperty("java.io.tmpdir"));
System.out.println("\njava.library.path: "+System.getProperty("java.library.path"));
System.out.println("\nuser.home: "+System.getProperty("user.home"));
System.out.println("\nos.arch: "+System.getProperty("os.arch"));
System.out.println("\nline.separator: "+System.getProperty("line.separator"));
System.out.println("\npath.separator: "+System.getProperty("path.separator"));
System.out.println("\nos.name: "+System.getProperty("os.name"));
System.out.println("\nos.version: "+System.getProperty("os.version"));
System.out.println("\nuser.name: "+System.getProperty("user.name"));
System.out.println("\nauthor.javaservletsjspweb: "+System.getProperty("author.javaservletsjspweb"));
}
}
Explanation

The above program will print the values for system defined properties. I've also printed property called "author.javaservletsjspweb" which is not a default system property. But we can still get this parameter value if we use -D (define) command line option. i.e.; programmer can also introduce customized properties which can be accepted as the arguments from JVM. (Just observe output 2)

Output1

>java ShowUserDir
user.dir: D:\Per\Java

file.separator: \

java.class.path: .

java.class.version: 50.0

java.compiler: null

java.ext.dirs: C:\Program Files\Java\jre6\lib\ext;C:\Windows\Sun\Java\lib\ext

java.home: C:\Program Files\Java\jre6

java.io.tmpdir: C:\Users\Revathi\AppData\Local\Temp\

java.library.path: C:\Windows\system32;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\cvsnt;C:\Sun\AppServer\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\Program Files\Java\jdk1.6.0_10\bin;F:\Santhosh\Android\dex-translator-0.0.9.3;F:\Santhosh\Android\apktool;F:\Santhosh\Android\android-sdk-windows\platform-tools;F:\Santhosh\apache-ant-1.8.3\bin;C:\Program Files\Common Files\Ahead\Lib\;.

user.home: C:\Users\Revathi

os.arch: x86

line.separator:


path.separator: ;

os.name: Windows 7

os.version: 6.1

user.name: Revathi

author.javaservletsjspweb: null
Output2

>java -Dauthor.javaservletsjspweb=Santhosh ShowUserDir
user.dir: D:\Per\Java

file.separator: \

java.class.path: .

java.class.version: 50.0

java.compiler: null

java.ext.dirs: C:\Program Files\Java\jre6\lib\ext;C:\Windows\Sun\Java\lib\ext

java.home: C:\Program Files\Java\jre6

java.io.tmpdir: C:\Users\Revathi\AppData\Local\Temp\

java.library.path: C:\Windows\system32;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\cvsnt;C:\Sun\AppServer\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\Program Files\Java\jdk1.6.0_10\bin;F:\Santhosh\Android\dex-translator-0.0.9.3;F:\Santhosh\Android\apktool;F:\Santhosh\Android\android-sdk-windows\platform-tools;F:\Santhosh\apache-ant-1.8.3\bin;C:\Program Files\Common Files\Ahead\Lib\;.

user.home: C:\Users\Revathi

os.arch: x86

line.separator:


path.separator: ;

os.name: Windows 7

os.version: 6.1

user.name: Revathi

author.javaservletsjspweb: Santhosh