【问题标题】:oracle db exception when start jar as service将 jar 作为服务启动时的 oracle db 异常
【发布时间】:2017-11-08 15:28:40
【问题描述】:

在我的程序中,我连接到了 oracle DB:

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

当我在 linux 上使用“java -jar myprog.jar”启动 jar 文件时 - 一切正常

当我将它作为服务启动时,使用服务包装器 (Run a Java Application as a Service on Linux) 它失败但有异常:

java.lang.UnsatisfiedLinkError: java.library.path 中没有 ocijdbc12 在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)

当我使用 sudo 启动它时,我看到了同样的错误:“sudo java -jar myprog.jar”

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

操作系统-CentOS; java版本 - 1.8;甲骨文版本 - 12.2

【问题讨论】:

    标签: java linux oracle


    【解决方案1】:

    问题是,某些 ENV 路径无法从“sudo”或“nohup”获得。

    解决方案是将 env 添加到命令中,如下所示:

    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

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      相关资源
      最近更新 更多