java - 如何在 Jenkins 上设置 LD_LIBRARY_PATH

标签 java linux jenkins continuous-integration continuous-delivery

我在从 Jenkins 运行作业时遇到 java.lang.UnsatisfiedLinkError 问题。

 <error message="no JSTAF in java.library.path" type="java.lang.UnsatisfiedLinkError">java.lang.UnsatisfiedLinkError: no JSTAF in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
        at java.lang.Runtime.loadLibrary0(Runtime.java:840)
        at java.lang.System.loadLibrary(System.java:1047)

基本上我需要设置 LD_LIBRARY_PATH 并且设置后,它可以在命令行执行时正常工作。例如,当我像下面这样设置 LD_LIBRARY_PATH 时:

export LD_LIBRARY_PATH=</proj/lib>:$LD_LIBRARY_PATH

设置后,代码从命令行执行正常。

我尝试使用 EnvInjectPlugin 设置此 LD_LIBRARY_PATH 并注入(inject) LD_LIBRARY_PATH

我仍然不确定为什么 Jenkins 没有选择这个 LD_LIBRARY_PATH。如何设置它以便 Jenkins 作业执行正常工作?

最佳答案

我昨天在这里发布了一个类似问题的答案:KDevelop4: Error while loading shared libraries

实际上,LD_LIBRARY_PATH 在许多 Linux 操作系统中已被弃用。为此使用/etc/ld.so.conf.d 中的配置文件并在启动 Jenkins 之前运行 ldconfig。 (见上面引用的帖子)

编辑[解决方案]:

在聊天中讨论后,问题已通过添加解决:

#!/bin/bash
export LD_LYBRARY_PATH=${LD_LIBRARY_PATH}:<myPathForJenkins>

/etc/profile.d/ 中的一个简短脚本中,并使用 chmod +x 将其设置为可执行

关于java - 如何在 Jenkins 上设置 LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444198/

相关文章:

testing - 使用 Jenkins + RobotFramework 测试自动化

android - calabash-android 在 Jenkins 下运行时给出 "No keystores found."

windows - 同一 Windows 服务器上的两个 Hudson Master

java - 如何在Gurobi中编写以下目标函数?

java - 如何访问 JavaFx 2.0 中的 Controller 类?

linux - 我如何用 GCC 或其他工具编译这个程序集文件?

linux - 软件能否包装 gzip/gunzip 以保留文件所有权?

linux - Yum 没有看到任何包裹

java - Spring Boot 中的 Junit Test 不注入(inject)服务

java - 将表映射到 POJO