0

In my program I have connection to oracle DB:

public static Connection getConnection() throws SQLException {
    String dbURL = "jdbc:oracle:oci:<username>/<password>@TNS_NAME";
    return DriverManager.getConnection(dbURL);
}

When I start jar file on linux using "java -jar myprog.jar" - all works correctly

When I start it as service, using service wrapper (Run a Java Application as a Service on Linux) it fails with exception:

java.lang.UnsatisfiedLinkError: no ocijdbc12 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)

The same error I see, when I start it using sudo: "sudo java -jar myprog.jar"

LD_LIBRARY_PATH = /usr/lib/oracle/12.2/client64/lib

OS - CentOS; java version - 1.8; oracle version - 12.2

1 Answers1

0

Problem was, that some ENV paths not available from "sudo" or "nohup".

Solution is add env to command, like this:

nohup env "LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib" "ORACLE_HOME=/usr/lib/oracle/12.2/client64" "TNS_ADMIN=/usr/lib/oracle/12.2/client64/network/admin" java -jar $PATH_TO_JAR