Java in a Nutshell

Previous Chapter 14 Next

14. System Properties

Standard System Properties
Working with System Properties

Java programs cannot read environment variables the way that native programs can. The reason is that environment variables are platform dependent. Similar mechanisms exist, however, that allow applications to read the value of a named resource. These resource values allow customization of an application's behavior based on site-specific parameters, such as the type of host, or based on user preferences.

These named resource values are specified for applications in the "system properties" list. Applications can read these "system properties" with the System.getProperty() method, or can read the entire list of properties with System.getProperties(). System.getProperty() returns the property value as a string. Applications can also read properties in parsed form using methods that are based on System.getProperty(), such as Font.getFont(), Color.getColor(), Integer.getInteger(), and Boolean.getBoolean().

14.1 Standard System Properties

When the Java interpreter starts, it inserts a number of standard properties into the system properties list. These properties, and the meaning of their values, are listed in Table 14.1. The table also specifies whether untrusted applets are allowed (at least by default) to read the value of these properties. For reasons of security, untrusted code is only allowed to read the values of properties to which it has explicitly been granted access. (Untrusted applets are not allowed to set the value of system properties, nor are they allowed to call System.getProperties() to obtain the entire list of properties.)

Table 14.1: Standard System Properties
Name Value Applet Access
java.version Version of the Java interpreter yes
java.vendor Vendor-specific identifier string yes
java.vendor.url Vendor's URL yes
java.class.version The version of the Java API yes
java.class.path The classpath value no
java.home The directory Java is installed in no

The JIT compiler to use, if any (Java 1.1)

no The name of the operating system yes
os.arch The host hardware architecture yes
os.version Version of the host operating system yes

Platform-dependent file separator (e.g., / or #)


Platform-dependent path separator (e.g., : or ;)


Platform-dependent line separator (e.g., #n or #r#n)

yes The username of the current user no
user.home The home directory of the current user no
user.dir The current working directory no

The 2-letter language code of the default locale (Java 1.1)


The 2-letter country code of the default locale (Java 1.1)

user.timezone The default time zone (Java 1.1) no

The character encoding for the default locale (Java 1.1)


The package that contains converters between local encodings and Unicode (Java 1.1)


Previous Home Next
Java Documentation Comment Syntax Book Index Working with System Properties

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java