Faced with error: nested exception is java.lang.UnsatisfiedLinkError when run java application as service in CentOs

Faced with error: nested exception is java.lang.UnsatisfiedLinkError when run java application as service in CentOs

我有一个 spring-boot web 应用程序,今天我将它部署到 Linux 系统。我的应用程序使用 HSM 设备,因此它使用名为 jcryptoki 的库来处理它。 我的服务已部署并且 运行 很好,但不幸的是,我在执行业务功能时遇到以下错误: nested exception is java.lang.UnsatisfiedLinkError: no jcryptoki in java.library.path

here是我创建服务时参考的文档。

当我通过 运行 命令 java -jar ... 运行 这个应用正常运行时,它运行良好。

我发现缺少 lib 路径声明 $LD_LIBRARY_PATH 时会发生同样的错误。可能运行ning application as a service时,系统找不到这个lib路径。

我 运行 两种情况都是 root 帐户,我是否丢失了任何配置或权限?

终于找到了服务定义文件中缺少环境声明变量引起的问题。 使用特定的声明变量:LD_LIBRARY_PATH=LD_LIBRARY_PATH=/opt/safenet/protecttoolkit5/cpsdk/lib/linux-x86_64/ 我添加名为 imported_inv(位于 etc/default)的新文件,其内容如上。在服务定义文件中,我声明了这样的附加信息

重新加载服务,然后一切正常。