Skip to main content
This page presents an orderly method for debugging problems that first appear when JMRI/DecoderPro is installed.
Even if you're an experienced debugger, we suggest you work your way through these steps in order. That way, if all else fails and you have to call for help, most of the initial stuff will be known to be OK.
Start by making sure you have an appropriate version of Java on your system by typing
at a command prompt and looking the message it produces.
JMRI® version 5.x requires Java 11.
Version 4.2 requires Java 1.8.
Version 3.10.1 requires Java 1.6 or later.
Version 2.14.1 requires Java 1.5 (or 1.6 if you wish for drag & drop).
Version 2.12 requires Java 1.5 or later.
This tests whether the basic installations of Java and JMRI are OK. If the program doesn't start up and run at least as far as producing its title screen and menus, there's something wrong with either the JMRI installation, or perhaps with the Java installation.
In that case, look for console messages that might describe what went wrong. Those appear in different places:
See if the messages tell you anything useful about missing pieces, etc. If not, cut and paste them into an email to the jmriusers discussion list, and somebody will help you figure out what went wrong.
Once the program is running, pull down the 'Edit' menu and select the 'Preferences ...' item. This opens the preferences panel. Select the proper protocol for your layout.
At this point, do the names of one or more serial ports appear in the selection box on the right?
If not, does your computer actually have any serial ports? You can't use JMRI without them (Well, you can use the program, but you can't communicate with a layout). You need to either get a serial port, or install a USB-serial adapter.
But if you have one or more serial ports, and they're not showing, this could mean that the Java communications libraries aren't properly installed. Check for error messages (see the note on how to do this in Step 2 above) If you see messages about "failed to load" or "missing class", then the communications libraries weren't found.
For most protocols, you have to configure the baud rate, and perhaps other options. These have to be set consistently with the layout hardware for communications to be possible.
The method to check whether the program can talk to the hardware of your layout depends a little bit on what you have installed. Basically, you want to command the system to do something that you can see. See if each of the following works:
Typically, this is what people want to do first. But by going through the prior steps, we know that communications between the program and the layout are fine, and we're just working through the last details now.
To check this:
If all goes well, you'll get a successful read of the same address
you saw previously.
If not, check for a message. Among the possibilities are: