Download and install JMRI®
JMRI Setup and Installation
JMRI environments...
Release Notes
Supported Hardware
Devices, command stations, networks, and protocols:
Source Code

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI Donate to

Release Notes for JMRI 4.10 release

Date: December 19, 2017

From: Bob Jacobsen

Subject: Production Release 4.10 of JMRI/DecoderPro is available for download.

We are very pleased to announce that the 4.9 series of JMRI test releases has resulted in a version that's good enough to be recommended for general use, including by new users. We're therefore making that version, "Production Release 4.10" available for download today.


JMRI is now only available under the GNU General Public License. For more information, please see our copyright and licensing page.

after image before image

Required Migration StepSince JMRI 4.7.4

JMRI was updated in JMRI 4.7.4 to use a new serial library. Depending on your exact circumstances, you may need to do some migrations:

Known problems with this release

Warnings for this release:

See the JMRI 4.8 release note for more warnings predating the 4.9 development series. These may be relevant to you if you're updating from a version earlier than JMRI 4.8.

Since JMRI 4.9.4 Due to changes in the capitalization of some method and property names, some scripts may fail until adjusted to use the new capitalization. The Javadocs for any JMRI class will list the correct capitalization.

Since JMRI 4.9.4 For Windows users only: JMRI 4.9.3 (and all later) has a new version of the "LaunchJMRI.exe" program. It's used to set options as JMRI is starting up, and is a completely normal part of JMRI. Because it's new and different, however, your anti-virus program may reject it. You might get a message about "file removed" or "file quarantined" or similar and then JMRI might not start. The solution is to make sure that your anti-virus program doesn't interfere with JMRI's installation and running. There are so many of those, unfortunately, that we can't really provide useful instructions beyond that.

Since JMRI 4.9.2 JMRI saves the Uhlenbrock connection's "baud" rate as an Internationalized string, and, upon loading a configuration profile, requires an Internationalized "baud" rate in the .XML file. JMRI will fail to properly configure the serial port if the "baud" rate from the configuration profile does not match one of the baud rate strings for the current Internationalization "locale". If you experience problems where JMRI start-up of a Uhlenbrock-based connection does not configure the serial port, it may be necessary to edit the connection's preferences, select the appropriate "baud" rate, save the connection. This updates the configuration profile XML file to use one of the "baud" rate strings expected by the Uhlenbrock-specific code in JMRI. It is necessary to re-start JMRI for this change to take effect.

Since JMRI 4.7.6 If you're having trouble getting your DCC programmer to work, try checking that the "Defaults" under "Preferences" are set to your hardware system. The reason: This version of JMRI (and all later) provides more options for "default systems": If you have multiple sets of hardware attached, which should be used for throttles, for programming, etc. JMRI tries to guess the right settings for these when you upgrade to this version, but apparently it sometimes gets that wrong (we haven't been able to track that down yet). Setting them manually fixes any wrong guesses.

Since JMRI 4.7.5 This version of JMRI (and all later) writes a slightly streamlined version of panel file contents. Older files should still be readable by this version of JMRI, but files written by this version may not be readable by versions before JMRI 4.2 depending on their contents.

Since JMRI 4.7.5 The LocoNetOverTCP server has changes that may break scripts that reference it. Scripts refering to the class jmri.jmrix.loconet.loconetovertcp.Server need to refer instead to jmri.jmrix.loconet.loconetovertcp.LnTcpServer.

Since JMRI 4.7.3 This release will not start cleanly if installed over earlier versions of JMRI (the Windows installer ensures this is not an issue). Remove the JAR files jackson-annotations-2.0.6.jar, jackson-core-2.0.6.jar, and jackson-databind-2.0.6.jar from the lib directory within the previous installation directory to resolve this.

Since JMRI 4.7.1 JMRI no longer supports the portable paths resource: or file: that were deprecated in JMRI 2.13. When loading a panel, an error message will be displayed if the panel contains a path that starts with resource: and the panel will not load until changed using an external editor. Paths starting with file: cannot be automatically flagged because JMRI allows file: URLs; these will have to be changed manually.

Since JMRI 4.7.1 The LocoNet Server (the LocoNetRMI service; not the LocoNetOverTcp service) in this version of JMRI doesn't properly interoperate with JMRI 4.7.1 through JMRI 4.7.4. It does work fine with JMRI version 4.6 or before. If you encounter a problem with version compatibility, you'll see an error message that includes "local class incompatible". The workaround is to update both client and server JMRI machines to the same JMRI version.

Since JMRI 4.7.1 JMRI applications will not load a panel file that fails XML validation; an error will be shown that should explains the error, allowing it to be fixed using an editor. (The explanations remain a work in progress.) The usual cause of something like this is (imperfect) manual editing of the file, but it can happen for multiple reasons. If you encounter this, try these things:

It's a good idea to keep a copy of the original file as you work on this, just in case.

Since JMRI 4.5.2 This and future releases of JMRI may not function on MacOS / OS X if the Java SE 6 provided by Apple is installed, but it may be reinstalled with other software programs. macOS operating system updates routinely remove this version of Java SE 6. Please raise any issues concerning this on the user's group. To remove Java SE 6 from macOS / OS X, follow these steps (these steps assume JMRI is installed in the folder /Applications/JMRI. If you've installed it in a different location, adjust the following paths as needed):

  1. Open

    OS X El Capitan only: Reboot into Recovery Mode by restarting your Mac and pressing Cmd-R until the Apple logo appears. Once in Recovery Mode, select Terminal from the Utilities menu.

  2. Run the command /Applications/JMRI/
    It can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.

    OS X El Capitan only: Run the command bash /Volumes/Macintosh\ HD/Applications/JMRI/ /Volumes/Macintosh\ HD
    It can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.

  3. OS X El Capitan only: Restart your Mac.

Download links:

Please note that the download links in this and future JMRI releases link to Github servers. If that doesn't work for you, the files up to 4.11.x are also still available from the servers. Please let us know of any problems.

Changes since production release 4.8:

The full lists of changes in each of the preceding test releases (4.9.1, 4.9.2, 4.9.3, 4.9.4, 4.9.5, 4.9.6, 4.9.7) are available in our GitHub code repository.


Hardware Support





Digitrax LocoNet









Uhlenbrock Intellibox

New / Updated decoder definitions











Layout Editor



Panel Editors




Turnouts, Lights and other elements



Signal Systems

Signal Heads

Signal Masts

Signal Groups

Simple Signal Logic

NX Entry/Exit Logic



Web Access


Virtual Sound Decoder