现在有个项目需要调用医保接口的DLL,我想知道如何能够在JAVA中调用里面的方法..使用JNI是否需要生成自己的DLL  在自己的DLL中去调用医保的DLL  然后再用JAVA累调用自己的DLL  这个感觉好麻烦的啊..有什么其他方便点的方法吗  请高手指点..
分数不多,请见谅..

解决方案 »

  1.   

    public class SSH1CiscoJNI { static {
    System.out.println(System.getProperty("java.library.path"));//是dll存放的路径.
    System.loadLibrary("putty");//"putty"是Dll名称
    } // native函数,用来传递对象
    public native int ConnectHost(String ipaddr, int port, String username,
    String password, String commandInfo,
    String Path); public static int getCheckPointLog(String ipaddr, int port,
    String username, String password, String commandInfo, String Path) {
    SSH1CiscoJNI SSH1CiscoJNI = new SSH1CiscoJNI();
    System.out.println(Path);
    int initvalue = SSH1CiscoJNI.ConnectHost(ipaddr, port, username,password, commandInfo, Path);
    System.out.println("返回结果为:" + initvalue);
    return initvalue;
    }
    }
    // ----------------------------------------------这是java代码.#include <jni.h>
    /* Header for class com_netbase_web_util_SSH1CiscoJNI */#ifndef _Included_com_netbase_web_util_SSH1CiscoJNI //java掉jni的类的路径.
    #define _Included_com_netbase_web_util_SSH1CiscoJNI
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
     * Class:     com_netbase_web_util_SSH1CiscoJNI
     * Method:    ConnectHost
     * Signature: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
     */
    JNIEXPORT jint JNICALL Java_com_netbase_web_util_SSH1CiscoJNI_ConnectHost
      (JNIEnv *, jobject, jstring, jint, jstring, jstring, jstring, jstring);#ifdef __cplusplus
    }
    #endif
    #endif
    //-------------这个就是DLL 与java的接口.
      

  2.   

    有问题发e-mail . [email protected]
      

  3.   

    请问  这个DLL与JAVA的接口是怎么弄的?编写JAVA然后javah编译?
      

  4.   

    先写一个本地方法的JAVA类 然后用javah生成头文件 
    这个头文件相当于接口 然后让C++/C实现头文件中的方法
    最后把这些C++/C打包成DLL,然后引入你的JAVA项目中 
    最后JAVA就可以根据你原来写的本地方法去调用DLL了
    用JNI调用DLL是比较繁琐 还有两种JAVA调用DLL的方式是jacob和jawin
    不过后两者本质也是JNI的方式.
      

  5.   

    也就是说现在我的C++/C的DLL中已经有了现成的方法   我就只要按照里面的方法写本地方法的JAVA类  然后生成头文件就可以调用了吧?
      

  6.   

    JNative
      

  7.   

    我想要稍微详细点的实现的步骤   我需要调用的DLL已经写好了  是社保提供的接口   我现在要调用
    谢谢大家..具体描述下,上面说的用JAVAH的正在尝试..
      

  8.   

    如果DLL是用Delphi写的  上面的方法也看可以用吗/
      

  9.   

    哎..今天又浪费了1天时间啊..最后我使用的JNative 发现无法直接调用Delphi写的DLL..今天作了一天无用功...
      

  10.   

    结贴了..搞了一天最后居然不是这样调用接口..现在又改用通过ICE框架,JAVA写底层.Dephil调用动态库和JAVA的底层代码了..继续研究ICE...
    非常感谢大家..JNative确实比较简单..虽然没用到  但是最终还是弄出来了//