首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DRMAA与shared.library.path

DRMAA与shared.library.path
EN

Stack Overflow用户
提问于 2013-04-10 09:10:16
回答 3查看 1.7K关注 0票数 0

我尝试在DRMAA中使用sun网格引擎,方法是遵循在:java.html上找到的教程。为此,我需要加载位于/srv/sge/lib/lx24-AMD 64/drmaa.so中的c库。现在,我使用以下代码执行我的命令: java -jar scriptName.jar scriptName.jar,如library中所述。但我还是得到了这个例外:

线程"main“java.lang.UnsatisfiedLinkError中的异常:在java.library.path中没有drmaa

当试图检索会话时,将引发此异常:

session = SessionFactory.getFactory().getSession();

操作系统是linux 64位,java是64位,SGE是64位,所以这都是兼容的。

有人知道出了什么问题吗?

EN

回答 3

Stack Overflow用户

发布于 2013-04-30 00:06:23

您将希望将shared.library.path更改为java.library.path (我认为这是您引用的博客文章中的一个错误。

另外,将-D开关放在命令中的-jar开关之前,否则它将被解释为jar文件中主函数的参数,而不是JVM的参数。

因此,示例命令现在应该如下所示:

代码语言:javascript
复制
java -Djava.library.path=/srv/sge/lib/lx24-amd64/ -jar scriptName.jar 
票数 0
EN

Stack Overflow用户

发布于 2013-08-01 09:03:00

情况似乎是,在某些发行版中,libdrmaa.so有一个库版本号libdrmaa.so.1.0,而缺少版本号的libdrmaa.so。drmaa.jar似乎只是在寻找没有。您可以使用以下方法检查系统中哪些libdrmaa.so库可用

代码语言:javascript
复制
# ldconfig -p | grep libdrmaa

(在我的例子中)或者说

代码语言:javascript
复制
libdrmaa.so.1.0 (libc6,x86-64) => /lib64/libdrmaa.so.1.0

代码语言:javascript
复制
libdrmaa.so.1.0 (libc6,x86-64) => /lib64/libdrmaa.so.1.0
libdrmaa.so (libc6,x86-64) => /lib64/libdrmaa.so

第二种情况是好的!

对于Fedora发行版,我将其报告为一个bug,似乎很快就在F18和F19中修复了它。bug.cgi?id=671880

这是一个简单的修复在Fedora安装软件包“网格引擎-发展”,其中包括这个软链接。

如果没有版本号的libdrmaa.so不存在,并且您在另一个发行版上,您可以作为系统管理员手动修复它,方法是键入

代码语言:javascript
复制
# cd /usr/lib64
# sudo ln -sf libdrmaa.so.1.0 libdrmaa.so
# sudo ldconfig
票数 0
EN

Stack Overflow用户

发布于 2014-08-21 11:54:31

以前的答案对我都没有用。我设法解决了这个问题,在我的环境中定义了以下变量

代码语言:javascript
复制
export LD_LIBRARY_PATH=<path to the drmaa lib>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15921578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档