Code documentation
Development Tools
Code Structure
Techniques and Standards
Help and Web Site
How To
Functional Info
Background Info

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI.org

JMRI Code: System Properties

This page lists the system properties that JMRI uses. See also the JUnit testing page and the Start Scripts page.

Operating System Properties

os.name
Most of JMRI is system-independent, but in a couple places we provide system-specific code to customize the user experience. This is the property we use to tell what type of computer operating system is in use.

For example, we locate the default preferences directory in different places depending on the system type.

user.dir
Java sets this to the directory in which JMRI is running. JMRI uses it to find many of its files; this property should not be changed by the user!
user.home
Java sets this to the "home" directory of the current user. JMRI uses it, on some systems, for locating the default locations for the preferences directory.
purejavacomm.portnamepattern
The PureJavaComm communications library uses this to specify the pattern for serial ports to use. If you have e.g. a USB to serial adapter which is not showing up in the preferences chooser boxes, assign its name (not it's path) to this property:
-J-Dpurejavacomm.portnamepattern=ttyUSB0
Multiple ports can be specified using the pattern:
-J-Ppurejavacomm.portnamepattern=(ttyUSB0|ttyUSB2)

JMRI properties

jmri.log
Name of the JMRI logging configuration file, typically default_lcf.xml
jmri.log4jconfigfilename
Name of the JMRI Test logging configuration file, typically tests_lcf.xml
jmri.log.path
The directory for storing logs. If not specified, logs are stored in the JMRI settings directory.
jmri.prefsdir
By setting this property, you can explicitly set where JMRI looks for it's preference directory.
jmri.inset.height
If set, provides a minimum inset value for the height of JMRI windows. The inset is the space allowed for decorations at the top and bottom of the screen. Set this to a positive integer N to ensure that JMRI windows open with at least N pixels available at the top and/or bottom.

-Djmri.inset.height=45

jmri.inset.width
If set, provides a minimum inset value for the width of JMRI windows. The inset is the space allowed for decorations around the sides of the screen. Set this to a positive integer N to ensure that JMRI windows open with at least N pixels available on the sides.
org.jmri.Apps.(key)
org.jmri.Apps.configFilename