我尝试在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位,所以这都是兼容的。
有人知道出了什么问题吗?
发布于 2013-04-30 00:06:23
您将希望将shared.library.path更改为java.library.path (我认为这是您引用的博客文章中的一个错误。
另外,将-D开关放在命令中的-jar开关之前,否则它将被解释为jar文件中主函数的参数,而不是JVM的参数。
因此,示例命令现在应该如下所示:
java -Djava.library.path=/srv/sge/lib/lx24-amd64/ -jar scriptName.jar 发布于 2013-08-01 09:03:00
情况似乎是,在某些发行版中,libdrmaa.so有一个库版本号libdrmaa.so.1.0,而缺少版本号的libdrmaa.so。drmaa.jar似乎只是在寻找没有。您可以使用以下方法检查系统中哪些libdrmaa.so库可用
# ldconfig -p | grep libdrmaa(在我的例子中)或者说
libdrmaa.so.1.0 (libc6,x86-64) => /lib64/libdrmaa.so.1.0或
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不存在,并且您在另一个发行版上,您可以作为系统管理员手动修复它,方法是键入
# cd /usr/lib64
# sudo ln -sf libdrmaa.so.1.0 libdrmaa.so
# sudo ldconfig发布于 2014-08-21 11:54:31
以前的答案对我都没有用。我设法解决了这个问题,在我的环境中定义了以下变量
export LD_LIBRARY_PATH=<path to the drmaa lib>https://stackoverflow.com/questions/15921578
复制相似问题