现在有个项目需要调用医保接口的DLL,我想知道如何能够在JAVA中调用里面的方法..使用JNI是否需要生成自己的DLL 在自己的DLL中去调用医保的DLL 然后再用JAVA累调用自己的DLL 这个感觉好麻烦的啊..有什么其他方便点的方法吗 请高手指点..
分数不多,请见谅..
分数不多,请见谅..
解决方案 »
- 怎么获得表单中的非文件域字段 急求
- Set<T>集合中只想提取出前6条记录 在线等!!
- 关于调用JavaBean的问题
- 初学者:我想问一个如何用java在xml中查找指定一个名字的节点,自己写了一个,但不行,我用的是dom4j包,请大家帮助
- java.net.URL抓取中文网页的问题
- 请问如何实现如下效果。
- 高手帮忙, 请给个javabean,jsp, servlet 一起用的例子(MVC)
- 求教,java中取ASCII码的函数是什么,谢谢了。
- JAVA中 MD5给中文加密出现不一致,求解决
- springboot服务器返回的json带转义字符斜杠\ 问题
- 关于struts导出,能实现,但是奇怪的问题。
- 有关Alexa排名的抓取代码
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的接口.
这个头文件相当于接口 然后让C++/C实现头文件中的方法
最后把这些C++/C打包成DLL,然后引入你的JAVA项目中
最后JAVA就可以根据你原来写的本地方法去调用DLL了
用JNI调用DLL是比较繁琐 还有两种JAVA调用DLL的方式是jacob和jawin
不过后两者本质也是JNI的方式.
谢谢大家..具体描述下,上面说的用JAVAH的正在尝试..
非常感谢大家..JNative确实比较简单..虽然没用到 但是最终还是弄出来了//