gpt4 book ai didi

java - 将 jar 作为服务启动时出现 oracle db 异常

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:53 26 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

问题是,某些 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

关于java - 将 jar 作为服务启动时出现 oracle db 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com