在 window 上写代码 然后部署到 linux服务器 调用这个 .so 文件 这个服务java 如何调用 linux下的 。so文件给我的 接口是 start(long useid)让我调用这个起服务  这个文件在 /cstor/lib/ 下static {
// 加载动态库 , .so 名称
System.loadLibrary("/cstor/Lib/NVRCModule");  
//System.loadLibrary(libname)
}
System.loadLibrary("/cstor/Lib/NVRCModule.so");  System.loadLibrary("NVRCModule");  怎么写都找不到库 加载不了 网上说的我看了些 没有太全的
请帮助做过的说下 白 

解决方案 »

  1.   

    给个参考:
    java类:public class Abc {
    static {
       System.loadLibrary("abc");
    }public native static String getAbc();public static void main(String s[]) {
       System.out.println(getAbc());
    }
    }#~~~~~~~~~~~~~~~~~终端敲入:java Abc.javajavah Abc#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~````生成Abc.h的头文件,内容如下:/* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class org_hexun_wangchong_admin_gethardware_GetHardWareInfo */#ifndef _Included_Abc_GetAbc()
    #define _Included_Abc_GetAbc()
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
    * Class:     org_hexun_wangchong_admin_gethardware_GetHardWareInfo
    * Method:    getHardWareInfo
    * Signature: ()Ljava/lang/String;
    */
    JNIEXPORT jstring JNICALL Java_Abc_getAbc
    (JNIEnv *, jobject);#ifdef __cplusplus
    }
    #endif
    #endif#~~~~~~~~~~~~~~~~~~写Abc.c文件,内容:#include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    #include <sys/io.h>
    #include "org_hexun_wangchong_admin_gethardware_GetHardWareInfo.h"JNIEXPORT jstring JNICALL Java_Abc_getAbc
    (JNIEnv *env, jobject t)
    {
        char *hd_sn_ptr="hello world";    //////////////////
    jstring str ;
    str = (*env)->NewStringUTF(env,hd_sn_ptr);
    ///////////////////////////
       return str;
      
    }#~~~~~~~~~~~~~~~~~~~~~~~生成so库gcc -I/jdk/include -fPIC -c abc.cgcc -shared -WI abc.o -o libabc.so复制libabc.so到jdk/jre/lib/i386下终端运行:java Abc
      

  2.   

    JNI技术
    调用第三方so(linux系)或dll(windows系),可以通过JNI来调用自己开发so或dll去调用第三方的so或dll
    JNI是什么,LZ自己谷哥百度一下就知道了,1L就已经给出一个sample了
      

  3.   

    如果不是用main()方法执行呢? 比如我在tomcat启动时就执行这个native 方法,可是执行的结果却不对。
    我改成main() 用 java com.xxx.xx.Abc 这样就可以执行,这是为什么啊????有没有高手回答一下呀