JMRI Install Guide: Linux
This page describes general aspects of installing JMRI on Linux.
There are multiple versions of Linux, all slightly different and
requiring installation instructions that differ in detail.
There are specific pages describing details of
There are also detailed instructions for installing on a
Some Linux distributions have associated repositories that make it easier to
install software. If you have one of those, you can find more info at:
The general procedure to install JMRI is:
- Determine if your hardware supports Java and JMRI
JMRI System Requirements
Using JMRI requires a combination of hardware (in this case running Linux), Java software and a JMRI
download for a specific version.
- 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
These steps outline how to install DecoderPro on Linux.
They should work for Red Hat 8, 9 and 10. They don't
work on RedHat 7.
(For other versions of Linux, please
see the first item in our
JMRI Linux FAQ).
You'll need the correct serial port or USB port
to attach to your layout hardware. JMRI is compatible
with USB-to-Serial adapters, so long as they have
Linux drivers that make them look like regular serial ports.
For troubleshooting, see the
- Get and Install Java (if needed)
To see if you have a version of Java already installed, in Terminal enter:
sh> java -version
If the Java version is 1.8 or later, you may be fine, but
be aware that if you did not install Java on your system
yourself, some systems have Java only partially installed. They
will respond correctly to the above command, but still are not
all there. If your system does not have Java in the environment
variable PATH, the install is probably not complete. Check with
the system manager or do a fresh Java installation.
If it is not at least 1.8, or if you get a "java: not found"
error, you will need to install it.
Most Linux distributions can get an automated install download
from Oracle by clicking on this button:
If that doesn't work or you need to manually install Java,
you can find further information on the
Oracle Java downloads page.
- Java comes in several forms:
JMRI needs the Standard Edition (SE) version, but
Java EE is also OK;
neither Java ME or Java Embedded are sufficient.
- There are also different Java SE installers: JMRI can
run with either a proper SDK (Software Development Kit, for compiling and running Java)
or JRE (Java Runtime Environment, for just running Java) installation.
Note: JMRI up to 4.99 was developed with Java 1.8. It should work fine with later versions (Java
1.9, Java 10, 11, etc)
but you may get a message about "WARNING: An illegal reflective access operation has occurred" and
"WARNING: Please consider reporting this to the maintainers".
We know about this; you can ignore the messages.
- Give user-level application access to serial ports
chmod 666 /dev/ttyS0
chmod 666 /dev/ttyS1
Give user access to lock files (required on Red Hat).
/etc/gshadow to add 'user' to the 'uucp' and 'lock'
- Get JMRI
Download a version of JMRI, either the
latest production version, or a "test version". Since the version
numbers change with every release, this link takes you to the general
JMRI download page, where you can select whichever version you like.
The JMRI project is continuously adding features, bug fixes,
examples and tutorials to the release, and so a new "test" versions
appear every couple of weeks. You may find one of these has features
that you really want. These are announced in the "JMRI users" Groups.io
discussion group at
- Install JMRI
Uncompress/untar the file you downloaded above. This will create a new "JMRI" folder.
Note: Each JMRI release is an independent set of files: It's intended to be used as a
whole. Each release provides new files, and sometimes removes old files.
You should therefore not expand the download into the same place as an
existing JMRI installation. Instead, expand it into a separate location, and
move in to its final destination, completely replacing any previous version of JMRI.
To install, you just have to move that new JMRI folder to where you
want it on your computer.
- Starting JMRI
Installation is complete.
You can run the program by using
the "DecoderPro", "PanelPro", or
"JmriDemo" scripts in the JMRI folder. Change directory there, and
invoke a script with e.g. "./DecoderPro"
You can find some more specific information
on the "JMRI Linux FAQ page".
JMRI users have created helpful pages: