JustTest.dll放在哪里了?(放在PATH下任何一个路径都可以)另外没看到你的程序哪里使用ShowMsg.dll啊?

解决方案 »

  1.   

    出现这种错误是因为你的动态库做得有问题,制作JNI DLL的步骤如下:
    1。编写带有native方法的类,并将此类编译成class文件;
    2。用javah工具生成.h头文件;
      在你做的这个例子中,因该是在justtest目录的上一级目录下,执行:
    javah -classpath . justtest.ShowMsg
    之后会在该目录下生成一个文件justtest_ShowMsg.h
    3。用一个.c(或.cpp)文件实现.h文件的函数;
    5。创建VC创建win32dll工程,将.c(或.cpp)和.h文件文件加入该工程,编译生成dll文件,
    6。将dll文件拷贝到,justtest目录的上一级目录下,执行:
    java -cp . justtest.RunC
    7.ok。我用你的例子做过了,没有问题,下面面是源程序://justtest_ShowMsg.h
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class justtest_ShowMsg */#ifndef _Included_justtest_ShowMsg
    #define _Included_justtest_ShowMsg
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
     * Class:     justtest_ShowMsg
     * Method:    greeting
     * Signature: ()V
     */
    JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting
      (JNIEnv *, jclass);#ifdef __cplusplus
    }
    #endif
    #endif
    //justtest_ShowMsg.cpp#include "justtest_ShowMsg.h"/*
     * Class:     justtest_ShowMsg
     * Method:    greeting
     * Signature: ()V
     */
    JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting
      (JNIEnv *env, jclass jThis)
    {
    printf("Welcome !!!");
    }
      

  2.   

    安装JDK之后,安装目录下有一个INCLUDE目录,将这个目录加入到VC的include路径列表中。
    另外INCLUDE目录下还有一个WIN32目录,也需要将他加入到VC的include路径列表中。
      

  3.   

    到这里来吧http://expert.csdn.net/Expert/topic/1332/1332013.xml?temp=.8996698我好把那个贴子结了。