JMRI: System Properties

# 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