首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常UnsatisfiedLinkError

异常UnsatisfiedLinkError
EN

Stack Overflow用户
提问于 2016-11-29 19:05:35
回答 2查看 1.1K关注 0票数 2

我试图运行我的项目,但我有这个例外,我不知道下一步该做什么。

详细信息:在这个项目中,我需要使用lib.jar,但是这个JAR文件需要.so文件。

编辑

代码语言:javascript
复制
    OpenJDK Server VM warning: You have loaded library /home/david/Retina/ReconocimientoRetina/sdk/libIddk2000jni.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
java.lang.UnsatisfiedLinkError: /home/david/Retina/ReconocimientoRetina/sdk/libIddk2000jni.so: libIddk2000.so: no se puede abrir el archivo del objeto compartido: No existe el archivo o el directorio
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at com.iritech.iddk.standard.Iddk2000Apis.<clinit>(Iddk2000Apis.java:221)
    at com.iritech.demo.functionCapture.open_device(functionCapture.java:1222)
    at com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
    at com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.iritech.iddk.standard.Iddk2000Apis.getIddkConfigNative(Lcom/iritech/iddk/standard/IddkConfig;)I
    at com.iritech.iddk.standard.Iddk2000Apis.getIddkConfigNative(Native Method)
    at com.iritech.iddk.standard.Iddk2000Apis.getSdkConfig(Iddk2000Apis.java:246)
    at com.iritech.demo.functionCapture.open_device(functionCapture.java:1225)
    at com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
    at com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)

我的图书馆

我有gnu/linux (ubuntu 64位)

编辑

在搜索答案之后,我找到了这个链接,我需要在"VM参数“中找到一个参数,但是为什么不能工作呢??

我将本机库放入文件夹工作区/ReconocimientoRetina/sdk/files.so中的项目中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-30 17:57:13

解决方案。

我用这个步骤解决了我的问题

第一

1-添加到LD_LIBRARY_PATH

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/foobar/lib

2-重建缓存

以sudo的形式打开/etc/ld.so.conf,并添加一个带有库目录的新行。在本例中,我们添加了/opt/foobar/lib.

3-重新运行ldconfig以重新构建缓存:

代码语言:javascript
复制
sudo ldconfig

4.检查共享库缓存现在是否包括新目录中的共享库:

代码语言:javascript
复制
ldconfig -p

更多信息,请参阅本教程https://codeyarns.com/2014/01/14/how-to-add-library-directory-to-ldconfig-cache/

票数 0
EN

Stack Overflow用户

发布于 2019-06-03 20:33:41

如果您正在使用ECLIPSE,请创建一个没有包名的项目(保留默认值)。

在我使用了观众的所有建议/推荐之后,我尝试了这一点,并与我一起工作。但是,您需要在VM -Djava.library.path="c:..."的环境中插入

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40873822

复制
相关文章

相似问题

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