看一看:
http://www.csdn.net/expert/topic/548/548763.xml?temp=.8303644
希望对你有帮助。

解决方案 »

  1.   

    好像你没有loadLibary();
    应该在调用前先System.LoadLibary("*.dll");
      

  2.   

    load了,而且当我删掉dll的时候,就会出现错误找不到dll!
      

  3.   

    把你这段调用的代码贴出来看看。
    包括在何处调用System.loadLibrary(),以及native方法的定义。
      

  4.   

    对了,我想起来了。
    好像是和你的DLL有关,以前我也遇到过。
    有两个地方要注意:
    1. 方法的导出,在VC(你是使用vc开发dll吗)工程中的*.def文件中加入
    你的方法导出。
    像我的是这样的:
    ; NativeCode.def : Declares the module parameters for the DLL.LIBRARY      "NativeCode"
    DESCRIPTION  'NativeCode Windows Dynamic Link Library'EXPORTS
        ; Explicit exports can go hereJava_edp_storageagent_StorageManager_initialize                @1
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2 如果你的dll使支持mfc的,请在每个java native function中加入一段

    JNIEXPORT void JNICALL Java_edp_storageagent_StorageManager_initialize
      (JNIEnv *env, jclass o,jint maxThreadNum)
    {
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        your code;
    }
    请检查这些,看能不能解决问题。
      

  5.   

    通过JNI的方式调用就可以了。