当前位置:  技术问答>linux和unix

请教一个简单的 JNI 问题,关于UnsatisfiedLinkError,清大侠赐教!!!

    来源: 互联网  发布时间:2016-02-19

    本文导语:  下面是我的一个简单的JNI程序: 1.  编写HelloWorld.java 如下: class HelloWorld {     public native void displayHelloWorld();     static {         System.loadLibrary("hello");     }          public static void main(String[] ar...

下面是我的一个简单的JNI程序:

1.  编写HelloWorld.java 如下:
class HelloWorld {
    public native void displayHelloWorld();

    static {
        System.loadLibrary("hello");
    }
    
    public static void main(String[] args) {
        new HelloWorld().displayHelloWorld();
    }
}

2.  javac HelloWorld.java,生成HelloWorld.class

3.  javah -jni HelloWorld,生成HelloWorld.h,如下:
/* DO NOT EDIT THIS FILE - it is machine generated */

#ifndef __HelloWorld__
#define __HelloWorld__

#include 

#ifdef __cplusplus
extern "C"
{
#endif

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld (JNIEnv *env, jobject);

#ifdef __cplusplus
}
#endif

#endif /* __HelloWorld__ */

4.  编写HelloWorld.c,如下:
#include 
#include "HelloWorld.h"
#include 
#include 

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld (JNIEnv *env, jobject obj)
{
printf("Hello World ~~~~~~~~~~rn");
}

5.  编译,生成动态链接库文件libhello.so
gcc -o libhello.so -shared -Wl,-soname,libnative.so -I/usr/java/jdk1.6.0_02/include -I/usr/java/jdk1.6.0_02/include/linux HelloWorld.c -static -lc
或者用makefile,如下:
libhello.so : HelloWorld.o makefile
gcc -Wall -rdynamic -shared -o libhello.so HelloWorld.o
HelloWorld.o : HelloWorld.c HelloWorld.h
gcc -Wall -c HelloWorld.c -I./ -I/usr/java/jdk1.6.0_02/include -I/usr/java/jdk1.6.0_02/include/linux
clean :
rm -rf *.o *.so

6.  运行java HelloWorld,结果都是出现下面的错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: libhello: libhello.so: æ— æ³•æ‰“开共享对象文件: æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–目录
   at java.lang.Runtime._load(libgcj.so.7rh)
   at java.lang.Runtime.loadLibrary(libgcj.so.7rh)
   at java.lang.System.loadLibrary(libgcj.so.7rh)
   at HelloWorld.(HelloWorld.java:5)
   at java.lang.Class.initializeClass(libgcj.so.7rh)

这个问题应该如何解决呢?各位大侠,帮帮忙吧!!!
我的系统是x86 FC6

|
你可以试一下: 
java   -Djava.library.path=.     HelloWorld

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • hotenM(CMP)大侠等EJB大侠进来!小问题请教!
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教大侠,怎么选开发学习板?
  • 我的显示器问题:请教大侠
  • 高分求救,请教各位大侠!!!
  • 大侠们,我是新手,请教怎么判断串口是否有连接
  • 大家帮忙,我想用LINUX作为ADSL上网的服务器,请教各位大侠如何配置?
  • 各位大侠,还有一问题请教,如下:
  • SUN 下面BIND失败,返回了126错,请教大侠?
  • JSP+数据库文本存取中的换行问题,请教大侠
  • 请教各位大侠:怎样在LINUX下通过校园网配置上网
  • 我想请教哪位大侠有Windows2000或WinXp底下的UNIX仿真软件
  • 请教各位大侠websphere安装配置问题
  • 向各位大侠请教一下unix的安装!!
  • 请教大侠,在linux下如何访问win2000里的NTFS格式的分区???
  • 病毒:我的红旗linux安装就有病毒,还IEM版呢。怎么办?请教大侠.
  • 初级问题,请教大侠
  • 急急急,请教有经验的大侠???--在线等候
  • 请教各位大侠一个关于JTextArea 问题
  • 请教大侠一个简单的问题
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3