List of Java system properties

Java™ system properties determine the environment in which the Java programs run. They are similar to system values or environment variables in i5/OS™.

Starting a Java virtual machine (JVM) sets the system properties for that instance of the JVM. For more information about how to specify values for Java system properties, see the following pages:

Java system properties

SystemDefault.properties file

For more information on Java system properties, see Java Secure Socket Extension (JSSE) system properties.

The following table lists the Java system properties for the supported versions of the Java 2 Software Development Kit (J2SDK), Standard Edition:

For each property, the table lists the name of the property and either the default values that apply or a brief description. The table indicates which system properties have different values in different versions of the J2SDK. When the column that lists the default values does not indicate different versions of the J2SDK, all supported versions of the J2SDK use that default value.

awt.toolkit

sun.awt.motif.MToolkit

awt.toolkit will be unset unless os400.awt.native=true or java.awt.headless=true

file.encoding

ISO8859_1 (default value)

Maps the coded character set identifier (CCSID) to the corresponding ISO ASCII CCSID. Also, sets the file.encoding value to the Java value that represents the ISO ASCII CCSID. See file.encoding values and iSeries™ CCSID for a table that shows the relationship between possible file.encoding values and the closest matching CCSID.

file.encoding.pkg sun.io
file.separator / (forward slash)
java.awt.headless
  • J2SDK v1.3: This property is not available when running J2SDK v.1.3.
  • J2SDK v1.4: false (default value)
  • Start of changeJ2SE 5.0: false End of change
This property specifies whether the Abstract Windowing Toolkit (AWT) API operates in headless mode or not. The default value of false makes full AWT function available only when you have enabled AWT by setting os400.awt.native to true. Setting this property to true supports headless AWT mode and also explicitly forces os400.awt.native to true.
java.class.path

. (period) (default value)

Designates the path that i5/OS uses to locate classes. Defaults to the user-specified CLASSPATH.

java.class.version
  • J2SDK v1.3: 47.0
  • J2SDK v1.4: 48.0
  • Start of changeJ2SE 5.0: 49.0End of change
java.compiler

jitc_de (default value)

Specifies whether you compile code by using the Just-In-Time (JIT) compiler (jitc) or both the JIT compiler and direct processing (jitc_de).

java.ext.dirs
J2SDK v1.3:
  • /QIBM/ProdData/Java400/jdk13/lib/ext:
  • /QIBM/UserData/Java400/ext
J2SDK v1.4:
  • /QIBM/ProdData/OS400/Java400/jdk/lib/ext:
  • /QIBM/ProdData/Java400/jdk14/lib/ext:
  • /QIBM/UserData/Java400/ext (default value)
Start of changeJ2SE 5.0:
  • /QIBM/ProdData/Java400/jdk15/lib/ext:
  • /QIBM/UserData/Java400/ext
End of change
java.home

J2SDK v1.3: /QIBM/Prodata/Java400/jdk13

J2SDK v1.4: /QIBM/ProdData/Java400/jdk14 (default value)

Start of changeJ2SDK v1.5: /QIBM/ProdData/Java400/jdk15 End of change

See Support for multiple Java Development Kits (JDKs) for details.

java.library.path
  • /QSYS.LIB/QSHELL.LIB:/QSYS.LIB/QGPL.LIB:
  • /QSYS.LIB/QTEMP.LIB:/QSYS.LIB/QDEVELOP.LIB:
  • /QSYS.LIB/QBLDSYS.LIB:/QSYS.LIB/QBLDSYSR.LIB

    (default value)

  • i5/OS library list
java.net.preferIPv4Stack
  • true (default value)
  • false (no's)

On dual stack machines, system properties are provided for setting the preferred protocol stack (IPv4 or IPv6) as well as the preferred address family types (inet4 or inet6). IPv6 stack is preferred by default, because on a dual-stack machine IPv6 socket can talk to both IPv4 and IPv6 peers. This setting can be changed with this property. java.net.preferIPv4Stack is specific to J2SDK v1.4.

For more information, see IPv6 protocol.

java.net.preferIPv6Addresses
  • true
  • false (no's) (default value)

Even though IPv6 is available on the operating system, the default preference is to prefer an IPv4-mapped address over an IPv6 address. This property controls whether IPv6 (true) or IPv4 (false) addresses are used. java.net.preferIPv4Stack is specific to J2SDK v1.4.

For more information, see IPv6 protocol.

java.policy

J2SDK v1.3: /QIBM/ProdData/ Java400/jdk13/lib/security/java.policy

J2SDK v1.4: /QIBM/ProdData/OS400/ Java400/jdk/lib/security/java.policy (default value)

Start of changeJ2SE v5.0: /QIBM/ProdData/ Java400/jdk15/lib/security/java.policyEnd of change

java.specification.name
  • Java Platform API Specification (default value)
  • Java Language Specification
java.specification.vendor Sun Microsystems, Inc.
java.specification.version
  • J2SDK v1.3: 1.3
  • J2SDK v1.4: 1.4 (default value)
  • J2SE v5.0: 1.5
java.use.policy true
java.vendor IBM® Corporation
java.vendor.url http://www.ibm.com
java.version
  • 1.3.1
  • 1.4.2 (default value)
  • Start of change1.5.0End of change

Determines which version of the J2SDK that you want to run.

Installing a single version of the J2SDK makes that version the default. Specifying a version that is not installed results in an error message. Failing to specify a version uses the most recent version of the J2SDK as the default.
Note: java.version is ignored if placed in the SystemDefault.properties file and trying to use the Java Native Inteface (JNI). For more information, see Support for multiple J2SDKs.
java.vm.name Classic 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 IBM Corporation
java.vm.version
  • J2SDK v1.3: 1.3
  • J2SDK v1.4: 1.4 (default value)
  • Start of changeJ2SE v5.0: 1.5End of change
line.separator \n
os.arch PowerPC®
os.name i5/OS
os.version

Start of changeV5R4M0 (default value)End of change

Obtains the i5/OS release level from the Retrieve Product Information application program interface (API).

os400.awt.native Controls whether the Abstract Windowing Toolkit (AWT) API is supported or not. Valid values are true and false. The default is false unless java.awt.headless=true is set, in which case os400.awt.native is implied to be true.
os400.certificateContainer Directs Java secure sockets layer (SSL) support to use the specified certificate container for the Java program that was started and the property that was specified. If you specify the os400.secureApplication system property, this system property is ignored. For example, enter -Dos400.certificateContainer=/home/username/ mykeyfile.kdb or any other keyfile in the integrated file system.
os400.certificateLabel You can specify this system property in conjunction with the os400.certificateContainer system property. This property lets you select which certificate in the specified container you want secure sockets layer (SSL) to use. For example, enter-Dos400.certificateLabel=myCert, where myCert is the label name that you assign to the certificate through the Digital Certificate Manager (DCM) when you create or import the certificate.
os400.child.stdio.convert Controls the data conversion for stdin, stdout, and stderr in Java. Data conversion between ASCII data and Extended Binary Coded Decimal Interchange Code (EBCDIC) data occurs by default in the Java virtual machine. Using this property to turn on and turn off these conversions also affects any child processes that this process starts by using the runtime.exec() method. See default values.
os400.class.path.security.check

20 (default value)

Valid values:
  • 0

    No security check

  • 10

    Equivalent to RUNJVA CHKPATH(*IGNORE)

  • 20

    Equivalent to RUNJVA CHKPATH(*WARN)

  • 30

    equivalent to RUNJVA CHKPATH(*SECURE)

os400.class.path.tools

0 (default value)

Valid values:
  • 0

    No Sun tools are in the java.class.path property

  • 1

    Prepends the J2SDK specific tools file to the java.class.path property

For J2SDK v1.3, the path to tools.jar is /QIBM/ProdData/Java400/jdk13/lib/

For J2SDK v1.4, the path to tools.jar is /QIBM/ProdData/OS400/Java400/jdk/lib/

Start of changeFor J2SE v5.0, the path to tools.jar is /QIBM/ProdData/Java400/jdk15/lib/ End of change

os400.create.type
  • interpret (default value)

    Equivalent to RUNJVA OPTIMIZE(*INTERPRET) and INTERPRET(*OPTIMIZE) or INTERPRET(*YES)

  • direct

    Otherwise

os400.define.class.cache.file

default value is /QIBM/ProdData/Java400/QDefineClassCache.jar

Specifies the name of a JAR or ZIP file. See "Using cache for user class loaders" in Java performance considerations.

os400.define.class.cache.hour
  • default value = 768
  • maximum decimal value = 9999

Specifies a decimal value. See "Using cache for user class loaders" in Java performance considerations/

os400.define.class.cache.maxpgms
  • default value = 5000
  • maximum decimal value = 40000

Specifies a decimal value. See "Using cache for user class loaders" in Java performance considerations/

os400.defineClass.optLevel 0
os400.display.properties If this value is set to 'true', then all of the Java Virtual Machine properties are printed to standard out. No other values are recognized.
os400.enbpfrcol
  • 0 (default value)

    equivalent to CRTJVAPGM ENBPFRCOL(*NONE)

  • 1

    equivalent to CRTJVAPGM ENBPFRCOL(*ENTRYEXIT)

  • 7

    equivalent to CRTJVAPGM ENBPFRCOL(*FULL)

For a nonzero value, the JIT generates *JVAENTRY, *JVAEXIT, *JVAPRECALL and *JVAPOSTCALL events.

os400.exception.trace This property is used for debugging. Specifying this property causes the most recent exceptions to be sent to standard output when the JVM exits.
os400.file.create.auth, os400.dir.create.auth These properties specify authorities assigned to files and directories. Specifying the properties without any values or with unsupported values results in a public authority of *NONE.

You can specify os400.file.create.auth=RWX or os400.dir.create.auth=RWX, where R=read, W=write, and X=execute. Any combination of these authorities is valid.

os400.file.io.mode Converts the CCSID of the file if it is different than the file.encoding value when you specify TEXT, rather than the default, which is BINARY.
os400.gc.heap.size.init An alternative to using -Xms (setting initial GC size). It is strongly recommended that you to continue to use -Xms unless you have no other choice as this property is specific to i5/OS. This property was introduced mainly so that you can specify initial GC size in the SystemDefault.properties file.
Note: Use this property carefully; it will override -Xms if specified. The value must be an integer in size of kilobytes and without commas.
os400.gc.heap.size.max An alternative to using -Xmx (setting maximum GC size). It is strongly recommended that you continue to use -Xmx unless you have no other choice as this property is specific to i5/OS. This property allows you to maximum GC size in the SystemDefault.properties file.
Note: Use this property carefully; it will override -Xmx if specified. The value must be an integer in size of kilobytes and without commas.
os400.interpret
  • 0 (default value)

    equivalent to CRTJVAPGM INTERPRET(*NO)

  • 1

    equivalent to CRTJVAPGM INTERPRET(*YES)

os400.jit.mmi.threshold Sets the number of times that a method runs by using the Mixed-Mode Interpreter (MMI) before i5/OS uses the JIT compiler to compile the method into native machine instructions. Usually, you should not change the default value, which is 2000.
  • A value of zero disables MMI and compiles methods when they are first called.
  • Values lower than the default tend to both lengthen the startup time and degrade ultimate performance.
  • Values higher than the default initially degrade performance until reaching the threshold, then tend to improve ultimate runtime performance.
Start of changeos400.job.file.encodingEnd of change Start of changeThis property is used for output only. It lists the file encoding of the i5/OS job that the JVM is in. End of change
os400.optimization
  • 0 (default value)

    equivalent to CRTJVAPGM OPTIMIZE(*INTERPRET)

  • 10

    equivalent to CRTJVAPGM OPTIMIZE(10)

  • 20

    equivalent to CRTJVAPGM OPTIMIZE(20)

  • 30

    equivalent to CRTJVAPGM OPTIMIZE(30)

  • 40

    equivalent to CRTJVAPGM OPTIMIZE(40)

os400.pool.size Defines how much space (in kilobytes) to make available for each heap pool in the thread local heap.
os400.run.mode
  • interpret

    equivalent to RUNJVA OPTIMIZE(*INTERPRET) and INTERPRET(*OPTIMIZE), or INTERPRET(*YES)

  • program_create_type
  • jitc_de (default value)

    Otherwise

os400.run.verbose If this value is set to 'true', then verbose classloading is printed to standard out. No other values are recognized. Accomplishes the same thing as specifying -verbose in QSHELL or OPTION(*VERBOSE) on the CL commands, except this property works in the SystemDefault.properties file.
os400.runtime.exec
  • EXEC (default value)

    Invoke functions through runtime.exec() by using the EXEC interface.

  • QSHELL

    Invoke functions through runtime.exec() by using the Qshell interpreter.

For more information, see Use java.lang.Runtime.exec()

os400.secureApplication Associates the Java program that starts when using this system property (os400.secureApplication) with the registered secure application name. You can view registered secure application names by using the Digital Certificate Manager (DCM).
os400.security.properties Allows full control over which java.security file you use. When you specify this property, J2SDK does not use any other java.security files, including the J2SDK specific java.security default.
os400.stderr Allows mapping stderr to a file or socket. See default values.
os400.stdin Allows mapping stdin to a file or socket. See default values.
os400.stdin.allowed

1 (default value)

Specifies whether stdin is allowed (1) or not allowed (0). If the caller is running a batch job, stdin should not be allowed.

os400.stdio.convert Allows control of the data conversion for stdin, stdout, and stderr in Java. Data conversion occurs by default in the Java virtual machine to convert ASCII data to or from EBCDIC. You can turn these conversions on or off with this property, which affects the current Java program. See default values.
os400.stdout Allows mapping stdout to a file or socket. See default values.
os400.xrun.option This system property allows the Qshell -Xrun option to be used by specifying a property. You can use it to specify an agent program to run during JVM startup.
os400.verify.checks.disable

65535 (default value)

This system property value is a string that represents the sum of one or more numeric values. For a list of these values, see os400.verify.checks.disable numeric values.

Start of changeos400.vm.inputargsEnd of change Start of changeThis property is used for output only. It will display the arguments that the JVM received as inputs. This property can be useful for debugging what was specified on JVM startup. End of change
path.separator : (colon)
sun.boot.class.path Lists all of the files required by the default boot classloader. Do not change this value.
user.dir Current working directory using the getcwd API.
user.home Retrieves the initial working directory by using the Get API (getpwnam). You can place a SystemDefault.properties file in your user.home path to override the default properties in /QIBM/UserData/Java400/SystemDefault.properties. You can customize the iSeries server to specify your own set of default property values.
user.language The Java virtual machine uses this system property to read the job LANGID value and uses this value to find the corresponding language.
user.name The Java virtual machine uses this system property to retrieve the effective user profile name from the Security section (Security.UserName) of the Trusted Computing Base (TCB).
user.region The Java virtual machine uses this system property to read the job CNTRYID value and uses this value to determine the user region.
user.timezone Universal Time Coordinate (UTC) (default value) The Java virtual machine uses this system property to obtain the time zone name by using the QlgRetrieveLocalInformation API. The JVM looks to the system QLOCALE object first. If not found, the JVM then looks at the QTIMZON system value. If the QTIMZON system value contains a non-recognized QTIMZON object, the JVM defaults the user.timezone to UTC.

For more information, see Supported user.timezone property values for the Development Kit for Java in the WebSphere Software Information Center.