首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux中的jni (Cent6):线程“主”java.lang.UnsatisfiedLinkError中的异常

linux中的jni (Cent6):线程“主”java.lang.UnsatisfiedLinkError中的异常
EN

Stack Overflow用户
提问于 2013-04-26 08:17:12
回答 2查看 13.5K关注 0票数 1

我现在和JNI一起工作。

我做了以下的事情:

  1. 我做了HelloJNI.java。它只是链接库libhello.so。 静态{ System.loadLibrary("hello");}

就像这样。我当然也有身体,但没什么特别的。

  1. 然后我创建了类文件、C文件和头文件。我命令 #javac HelloJNI.java #javah -classpath /usr/来宾/工作区/路径/ -jni package.HelloJNI到目前为止没有任何错误。
  2. 我制作了libhello.so.gcc -shared -fpic -o libhello.so -I/usr/java/jdk1.7.0_21/include -I/usr/java/jdk1.7.0_21/include/linux HelloJNI.c
  3. 当我在eclipse中运行此项目时,错误显示如下所示。 线程"main“中的异常:在java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at org.owls.jni.HelloJNI的java.library.path中没有你好。(HelloJNI.java:7)

我试过这个,但不起作用。

代码语言:javascript
复制
    # chcon -t texrel_shlib_t libhello.so

感谢您的阅读和明智的解决方案。

  • 谁来谈谈路径的事。但我不知道该把这句话写在哪里。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 06:19:16

我自己解决了这个问题。

其原因是javah命令。

我确实喜欢下面。

代码语言:javascript
复制
javah -classpath /home/guest/workspace/.../src org.owls.HelloJNI.

生成的头文件中的方法与我所期望的不同。

我希望像这样的

代码语言:javascript
复制
JNIEXPORT JNICALL void Java_HelloJNI_say(JNIEnv* env, jobject j){}

但下面是实际生成的。

代码语言:javascript
复制
JNIEXPORT JNICALL void Java_org_owls_HelloJNI_say(JNIEnv* env, jobject j){}

这是我问题的主要原因。

虽然我放弃了自己,但非常感谢与我有共同的问题的人。

祝你今天过得愉快

票数 0
EN

Stack Overflow用户

发布于 2013-04-29 03:35:16

export LD_LIBRARY_PATH="/path/to/library/"。您可以从命令行执行此操作,也可以将其添加到bashrc良好的链接中,以读取http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html’ before ‘void’

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

https://stackoverflow.com/questions/16231741

复制
相关文章

相似问题

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