List of Java system properties

Java™ system properties determine the environment in which the Java programs run. They are like system values or environment variables in IBM® i.

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:

For more information about Java system properties, see JSSE for Java system properties

The following table lists the Java system properties for the supported IBM Technology for Java (5770-JV1) options. 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 Java 2 Platform, Standard Edition (J2SE). When the column that lists the default values does not indicate different versions of the J2SE, all supported versions of the J2SE use that default value.
Note: Not all properties are listed. Only properties that are set uniquely for IBM i are listed.

Java property Default value
file.encoding Defaults based on default language ID and country ID of the job.

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.

The file.encoding value must be specified on JVM startup, and should not be changed at runtime.

See File.encoding values and IBM i CCSID for a description of how the default is chosen, and a table that shows the relationship between possible file.encoding values and the closest matching CCSID.
i5os.crypto.device Specifies the cryptographic device to use. If this property is not set, the default device CRP01 is used.
i5os.crypto.keystore Specifies the CCA keystore file to use. If this property is not set, the keystore file named in the cryptographic device description is used.
java.compiler IBM Technology for Java compiler level. This property is used for output only.
java.ext.dirs Java SE 71 32bit(default):
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk71/32bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

Java SE 71 64bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk71/64bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext
Java SE 7 32bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk70/32bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

Java SE 7 64bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk70/64bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext
Java SE 6 32bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

Java SE 6 64bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk60/64bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

Java SE 8 32bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk80/32bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

Java SE 8 64bit:
  • /QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/jre/lib/ext
  • /QIBM/UserData/Java400/ext

java.home
  • Java SE 71 32bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk71/32bit/jre
  • Java SE 71 64bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk71/64bit/jre
  • Java SE 7 32bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk70/32bit/jre
  • Java SE 7 64bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk70/64bit/jre
  • Java SE 6 32bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit/jre
  • Java SE 6 64bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk60/64bit/jre
  • Java SE 8 32bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk80/32bit/jre
  • Java SE 8 64bit: /QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/jre

This property is used for output only. See Support for multiple Java Development Kits (JDKs) for details.
java.library.path This property is used for locating native method libraries for the application as well as internal JVM native libraries. The default value is obtained from the concatenation of two lists: the IBM i library list and the paths specified for the LIBPATH environment variable. For more information, see Managing native method libraries.
java.net.preferIPv4Stack
  • false (no's) - default value
  • true

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.

For more information, see the Networking IPv6 User Guide.
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.

For more information, see the Networking IPv6 User Guide.
java.use.policy true
java.vendor IBM Corporation
java.vendor.url http://www.ibm.com
java.vm.name IBM J9 VM
java.vm.specification.name Java Virtual Machine Specification
java.vm.specification.vendor Oracle America, Inc.
java.vm.specification.version 1.0
java.vm.vendor IBM Corporation
java.vm.version
  • Java SE 6: 2.4
  • Java SE 7: 2.6
  • Java SE 71: 2.7
  • Java SE 8: 2.7
os.arch PowerPC®
os.name OS/400®
os.version

V7R1M0 (default value)

Obtains the IBM i release level from the Retrieve Product Information application programming interface (API).
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 only affects child processes that this process starts by using the Runtime.exec() in which the command being run is a command based on Java.

This property value becomes the default value for os400.stdio.convert in the child processes. See Values for os400.stdio.convert and os400.child.stdio.convert system properties.
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.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.job.file.encoding This property is used for output only. It lists the character encoding equivalent to the job CCSID of the IBM i job the JVM is running in.
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, the J2SE does not use any other java.security files, including the J2SE specific java.security default.
os400.stderr Allows mapping stderr to a file or socket. See os400.stdin, os400.stdout, and os400.stderr system property values.
os400.stdin Allows mapping stdin to a file or socket. See os400.stdin, os400.stdout, and os400.stderr system property values.
os400.stdin.allowed Specifies whether stdin is allowed (1) or not allowed (0). The default value is 1 for interactive jobs and 0 for a batch jobs.
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 Values for os400.stdio.convert and os400.child.stdio.convert system properties.

For Java programs started using the Runtime.exec() method, see os400.child.stdio.convert.
os400.stdout Allows mapping stdout to a file or socket. See default values.
os400.xrun.option This property can be used in place of the -Xrun option on the java command to run an agent program during JVM startup.
os400.vm.inputargs This 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.
user.timezone
  • The JVM selects the value for this property by using the QTIMZON value for the current job. The name in the 'Alternate Name' field of this object is the value used for this property. The value in the 'Alternate Name' field must be at least 3 characters in length, or it will not be used.
  • If the 'Alternate Name' field in the QTIMZON object is less than 3 characters in length, the JVM will attempt to find a matching GMT value based on the current system offset. Example: A QTIMZON object with an empty Alternate Name field and an offset of -5 would result in setting user.timezone=GMT-5.
  • If a value still has not been found, the JVM defaults user.timezone to Universal Time Coordinate (UTC).

For more information, see Time zone IDs that can be specified for the user.timezone property in the WebSphere® Software Information Center.