home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Java Fundamental Classes Reference

Previous Chapter 10
Accessing the Environment
Next
 

10.2 System Properties

System properties provide a mechanism for getting information about the environment. You can get the value of a system property by passing its name to the System.getProperty(String) method. This method returns the value of the named property as a String, or it returns null if the property is not defined. Since it is common to assume a default value if a property is not specified, there is also a System.getProperty(String, String) method that takes the name of a property and a default String value to return if the property is not defined.

Table 10.1 lists the standard system properties for a Java environment. Many of these properties are guaranteed to be defined in any Java environment. Note, however, that untrusted applets aren't allowed to access many of these properties.

Table 10.1: Standard System Properties

Property Name

Description

file.encoding

The character encoding for the default locale ( Java 1.1 only)

file.encoding.pkg

The package that contains the converters that handle converting between local encodings and Unicode ( Java 1.1 only)

file.separator

The platform-dependent file separator (e.g., "/" on UNIX, "\" for Windows)

java.class.path

The value of the CLASSPATH environment variable

java.class.version

The version of the Java API

java.compiler

The just-in-time compiler to use, if any. The java interpreter provided with the JDK initializes this property from the environment variable JAVA_COMPILER

java.home

The directory in which Java is installed

java.version

The version of the Java interpreter

java.vendor

A vendor-specific string

java.vendor.url

A vendor URL

line.separator

The platform-dependent line separator (e.g., "\n" on UNIX, "\r\n" for Windows)

os.name

The name of the operating system

os.arch

The system architecture

os.version

The operating system version

path.separator

The platform-dependent path separator (e.g., ":" on UNIX, "," for Windows)

user.dir

The current working directory when the properties were initialized

user.home

The home directory of the current user

user.language

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

user.name

The username of the current user

user.region

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

user.timezone

The default time zone ( Java 1.1 only)

The Java API also provides some convenience methods for getting the value of a system property that should be interpreted as a data type other than String:

  • Boolean.getBoolean() returns the value of a named system property as a boolean.

  • Color.getColor() returns a Color object that represents the color specified by the value of a named system property interpreted as an RGB value. For example, the value 0xFFFFFF is white, 0xFF000 is red, 0x00FF00 is green, and 0x0000FF is blue.

  • Font.getFont() returns a Font object that is mapped to a font in the native windowing system. If the string passed to getFont() is "poster", the method uses the value of the system property awt.font.poster as the name of the native font.

    By default, the font style is plain and the font size is 12 points. If the font name is prefixed with bold-, italic- or bolditalic-, that style is used instead. If the font name is prefixed with a size and a -, that size is used instead. If both style and size are specified, style must come first. For example, passing "italic-14-timesRoman" to getFont() causes it to return a Font object that uses the native font identified by the system property awt.font.timesRoman. That font should be an italic, 14-point, TimesRoman font.

  • Integer.getInteger() returns the value of a named system property as an int.

  • Long.getLong() returns the value of a named system property as a long.

    There are two built-in mechanisms for setting system properties. Note that you can use these mechanisms to set the standard system properties or to define specific system properties for your own application.

  • You can define properties from the command line of the Java virtual machine using the -D command line option. For example, to define a property named time.server with the value tm02, you can invoke the interpreter like this:

    C:\> java -Dtime.server=tm02
    

  • You can define any number of system properties using -D, as long as each property is specified with its own -D option.

You can programmatically define properties by calling the System.setProperties() method. The Properties object that you pass to System.setProperties() becomes the new source for all system property values.

If a program is running in a browser or other environment that has a SecurityManager installed, it may be denied any access to system properties.


Previous Home Next
I/O Book Index Environment Variables

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