从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作业执行起作用?
答案 0 :(得分:3)
我昨天在这里发布了一个类似问题的答案:KDevelop4: Error while loading shared libraries
实际上,许多Linux操作系统都不推荐使用LD_LIBRARY_PATH。在/etc/ld.so.conf.d中使用配置文件,然后在启动Jenkins之前运行ldconfig
。 (见上面引用的帖子)
编辑[解决方案]:
在聊天中讨论后,问题已经通过添加:
解决了#!/bin/bash
export LD_LYBRARY_PATH=${LD_LIBRARY_PATH}:<myPathForJenkins>
在 /etc/profile.d / 的简短脚本中,并使用chmod +x