顶,这个问题我很感兴趣!
----------------------------
               CSDN一号机器人

解决方案 »

  1.   

    最近在用JNI,有Windows下,有Unix下,遇到了不少问题,请大家一起来讨论一下啊。
    我在做一个Unix下进程监控的小程序,用JAVA写,需要调用C写的Unix下的与进程相关的函数,首先写一个java程序,用javac编译后用javah产生.c文件,然后写了一个cpp文件,编译以后,产生了一个Proc.so文件,类似于Windows下的dll文件,然后用另一个java程序进行调用,但是这时候会抛出一个异常,提示为:
    no Proc.so in java library path
    我将Proc.so文件复制到了/usr/java/include和/usr/java/lib目录下,这两个目录是jdk的目录,但是还是会抛出以上的异常。
    请问需要怎样设置,有高手做过unix下的jni编程吗
      

  2.   

    java核心编程第二卷讲的很详细,可去看看!
      

  3.   

    jclass ExaDOclz = env->FindClass("yourpackage/ExaDO");
    jmethodID ExaDO_init = env->GetMethodID(ExaDOclz, "<init>", "()V");
    jobject ExaDO = env->NewObject(ExaDOclz,ExaDO_init);
    不过你的类全部是Private的,怎么赋值啊!可以写一个方法来专门赋值,像上面这样先GetMethodID获得,再
    env->CallVoidMethod(ExaDO , ExaDO_setValue, env->NewStringUTF("Name"));
    就可以了