Java: System Properties

From System Properties you can find information about the operating system, the user, and the version of Java.

The property names (keys) and values are stored in a Properties structure. (See Properties). A Properties object can also be used to store your own program properties in a file.

Getting the System Properties

Typically you get one property at a time by supplying the key in a call to System.getProperty().

Example

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

A list of system properties

Here are the properties that displayed on my system.

awt.toolkit=sun.awt.windows.WToolkit
file.encoding=Cp1252
file.encoding.pkg=sun.io
file.separator=\
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob
java.class.path=.;c:\classpath\com.fredswartz.utilities.jar;c:\classpath\TableLayout.jar;c:\classpath\swixml.jar;c:\classpath\jdom.jar;c:\classpath\pmd-1.8\lib\pmd-1.8.jar;C:\classpath\pmd-1.8\lib\jaxen-core-1.0-fcs.jar;C:\classpath\com.fredswartz.guiUtils.jar;C:\classpath\com.fredswartz.fmt-0.7.jar;C:\Program Files\IBM\Cloudscape_10.0\lib\derby.jar
java.class.version=49.0
java.endorsed.dirs=C:\Program Files\Java\jdk1.5.0_01\jre\lib\endorsed
java.ext.dirs=C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext
java.home=C:\Program Files\Java\jdk1.5.0_01\jre
java.io.tmpdir=C:\DOCUME~1\Owner\LOCALS~1\Temp\
java.library.path=C:\Program Files\Java\jdk1.5.0_01\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Python22;C:\Program Files\PC-Doctor for Windows\services;c:\ant\bin;c:\Program Files\Java\jdk\bin;c:\Program Files\Java\jdk\jre\javaws;C:\Program Files\Sybase\Adaptive Server Anywhere 6.0\win32;c:\classpath\jcsc/bin;c:\classpath\jcsc\bin;C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin
java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version=1.5.0_01-b08
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.5
java.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
java.version=1.5.0_01
java.vm.info=mixed mode, sharing
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Sun Microsystems Inc.
java.vm.version=1.5.0_01-b08
line.separator=

os.arch=x86
os.name=Windows XP
os.version=5.1
path.separator=;
sun.arch.data.model=32
sun.boot.class.path=C:\Program Files\Java\jdk1.5.0_01\jre\lib\rt.jar;C:\Program Files\Java\jdk1.5.0_01\jre\lib\i18n.jar;C:\Program Files\Java\jdk1.5.0_01\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.5.0_01\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.5.0_01\jre\lib\jce.jar;C:\Program Files\Java\jdk1.5.0_01\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.5.0_01\jre\classes
sun.boot.library.path=C:\Program Files\Java\jdk1.5.0_01\jre\bin
sun.cpu.endian=little
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.jnu.encoding=Cp1252
sun.management.compiler=HotSpot Client Compiler
sun.os.patch.level=Service Pack 2
user.country=US
user.dir=C:\0www-workingnotes\notes-java-working\io\30properties_and_preferences\40sysprops\SysPropList
user.home=C:\Documents and Settings\Owner
user.language=en
user.name=Owner
user.timezone=
user.variant=

Program that produced this output

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
// File: io/properties/SysPropList.java
// Description: Shows system properties.  This must be an application.
//              An applet can't get this information.
// Author: Fred Swartz
// Date:   2 Feb 2005

import java.awt.*;
import javax.swing.*;
import java.util.*;

/** Generic main program. */
public class SysPropList {
    public static void main(String[] args) {
        JFrame window = new JFrame("System Properties");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setContentPane(new SysPropListGUI());
        window.pack();
        window.setVisible(true);
    }
}

/** Panel to display the (limited) GUI intereface. */
class SysPropListGUI extends JPanel {
    JTextArea m_propertiesTA = new JTextArea(20, 40);

    /** Constructor sets layout, adds component(s), sets values*/
    public SysPropListGUI() {
        this.setLayout(new BorderLayout());
        this.add(new JScrollPane(m_propertiesTA), BorderLayout.CENTER);

        //... Add property list data to text area.
        Properties pr = System.getProperties();
        TreeSet propKeys = new TreeSet(pr.keySet());  // TreeSet sorts keys
        for (Iterator it = propKeys.iterator(); it.hasNext(); ) {
            String key = (String)it.next();
            m_propertiesTA.append("" + key + "=" + pr.get(key) + "\n");
        }
    }
}

Related Pages