3

从 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

设置后,代码执行可以从命令行正常工作。

我尝试LD_LIBRARY_PATH使用设置它EnvInjectPlugin并注入LD_LIBRARY_PATH.

我仍然不确定詹金斯为什么不接受这个LD_LIBRARY_PATH。如何进行设置以使 Jenkins 作业执行有效?

4

1 回答 1

3

我昨天在这里发布了一个类似问题的答案:KDevelop4:加载共享库时出错

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

编辑[解决方案]:

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

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

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

于 2014-01-29T22:53:20.087 回答