KB-1548 Cannot run program "jps" error when starting Service Manager

Symptoms

Symptom 1

When executing a Service Manager script in the <APPIAN_HOME>/services/bin directory, the following error is returned:

Exception thrown while attempting to retrieve process info for java process with main Class name QuorumPeerMain. java.io.IOException: Cannot run program "jps": error=2, No such file or directory
...
Caused by: java.io.IOException: error=2, No such file or directory


Symptom 2

Zookeeper service initially starts successfully as per the <APPIAN_HOME>\logs\service-manager\zookeeper\zookeeper.log:

2019-01-22 21:01:44,744 [myid:1] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2019-01-22 21:01:44,747 [myid:1] - INFO [main:QuorumPeer@1158] - tickTime set to 2000

However, Zookeeper then errors out immediately with the following error in the <APPIAN_HOME>\logs\service-manager\zookeeper\zookeeper.log:

2019-01-22 21:02:04,966 [myid:1] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2019-01-22 21:02:04,967 [myid:1] - ERROR [main:QuorumPeerMain@92] - Unexpected exception, exiting abnormally
java.net.BindException: Address already in use

Cause

There are two possible causes for this issue.

  1. If you are using Oracle Java, this error is returned when the JAVA_HOME path is set to JRE, rather than JDK. As per the Appian System Requirements, JDK is the supported option. To check the JAVA_HOME variable:
    • In Windows, right click My Computer and select Properties. On the Advanced tab, select Environment Variables, and edit JAVA_HOME to view the JDK path.
    • In Linux, type echo $JAVA_HOME in a terminal to view the Java path.
  2. If you are using OpenJDK, the basic download of OpenJDK does not ship with JPS.

Action

  1. To resolve the issue, follow the Appian Installation Prerequisites documentation to set up the JAVA_HOME and PATH variables to point to the JDK. If using OpenJDK, ensure that the developer edition is being used.
  2. Ensure the Appian user has appropriate permissions to run jps command.

Affected Versions

This article applies to Appian 17.3 and later.

Last Reviewed: February 2019

Related
Recommended