Error: libjvm.so: cannot open shared object file: No such file or directory

Modified on Mon, 1 May, 2017 at 11:47 PM

If you get the following error,

Please specify LD_LIBRARY_PATH as follows on starting skedler
usage : sudo LD_LIBRARY_PATH=<path> bin/skedler
Please ignore the above message if specified
module.js:460
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: libjvm.so: cannot open shared object file: No such file or directory
    at Error (native)
    at Object.Module._extensions..node (module.js:460:18)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/opt/skedler/node_modules/java/lib/nodeJavaBridge.js:21:16)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)


To resolve 

  • We recommend you to run the skedler_home/install.sh script when you Install Skedler on your machine.
    • Before you run the script file kindly follow the steps given below,
      • Set the value for the variable JAVA_HOME in the skedler_home/install.sh script as follows,
        •  Check JAVA_HOME using the command echo $JAVA_HOME.
        • Copy and paste the output to the install.sh
      • Save install.sh.
    • Provide the required permission to skedler_home/install.sh script file using the command sudo chmod u+x install.sh
    • Install Skedler using the command. 
      • Run install.sh as sudo user sudo ./install.sh
    • You can start Skedler as a service or manually.
      • Manually: bin/skedler
      • Service: sudo service skedler start
  • For more detailed installation kindly refer the section Configure Permissions and Java_Home the following solution,

        Step-by-Step Installation Guide for Linux


Alternative ways to resolve the issue,
  • To run the application manually as normal user

1. Configure LD_LIBRARY_PATH in /etc/bash.bashrc by adding the following line,

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

2. Compile it using the command given below,

source /etc/bash.bashrc

3. Start skedler as bin/skedler debug


  • If you are running the application manually as root user, After configuring LD_LIBRARY_PATH as above please check the whether the root has LD_LIBRARY_PATH in environment variable using the following command,

sudo  env | grep LD_LIBRARY_PATH

  • If LD_LIBRARY is not present, please start skedler as follows,

LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server bin/skedler

  • If you are running the application as service. Add the following line to the service script

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article