这个小例子用JNI调用了VC++做的DLL动态库。
1、总体说明:
实现一个函数,传入整形数i,返回值i*i,这个函数做在DLL中,java将通过JNI调用这个函数,传入一个参数,得到返回值。
确定DLL的名称为calldll.dll,函数shanfei(int i)。
2、编写java程序javacall.java,如下:
public class javacall
{
static
{
System.loadLibrary("calldll");
}
public native static int shanfei(int i);
public static void main(String[] args)
{
javacall jc = new javacall();
int j;
j = jc.shanfei(4);
System.out.println(j);
}
}
3、编译
javac javacall.java
4、生成头文件
javah javacall
生成javacall.h文件
5、制作VC++动态库
建立新DLL工程,程序中添加:
#include "javacall.h"
JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p)
{
int j = p*p;
return j;
}
别忘了将javacall.h复制到VC工程目录中,然后编译,如果编译说找不到jni.h文件,可以将jni.h复制到工程目录中,还可将javacall.h文件中的#include <jni.h>改为#include "jni.h",再编译。
6、java调用
将生成的calldll.dll文件复制到javacall.java所在的目录中,运行
java javacall,应该可以看到运行结果。
分享到:
相关推荐
JAVA调用DLL JAVA调用DLLJAVA调用DLLJAVA调用DLLJAVA调用DLLJAVA调用DLL
Java调用动态链接库 Java 调用 DLL 源码
亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。
java调用c++ dll代码
java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...
JAVA使用JNative包调用DLL文件
是Java 调用DLL动态库框架,功能强大,告别往日的JNI,只需定义接口,就可以方便调用DLL库,为开发人员省了不少事。
java调用dll接口,备份供大家察看,谢谢大家共享。
Java调用dll示例,Java命名方法,C++实现生成DLL供JAVA调用
在Java中调用DLL(Dynamic Link Library)文件,可以使用Java的本地方法接口(JNI,Java Native Interface)来实现。JNI允许Java程序与本地代码进行交互,从而实现跨平台的功能。
JAVA调用dll和ocx例子,操控学习JAVA调用DLL,ocx
java调用dll 文件的必备jar包和环境,java调用dll 文件的必备jar包和环境
完整的实现java跨平台调用C程序源码,包含JAVA源码和C源码以及编译后的demo dll。将dll放到jdk bin目录下,java 项目可以直接运行。若要修改dll可以,修改C源码后重新编译生成dll。该demo处理了多线程调用c,全局...
java调用dll实例代码
这是java采用jni技术调用dll(动态链接库的一个demo),不需要任何改动,自己可以用,很适合初学者
Java调用DLL源代码JNA和JNative
Java通过JNI调用DLL动态库,亲测试编写
该资源包含C#开发DLL源码,Java调用DLL源码,测试已通过
独家开发pos机调用程序开发,基于jdk1.8开发,主要技术难点为集成调用dll库的maven项目,参考价值一为java调用dll库函数开发,一为银联pos机调用
MyEclipse 6.5 导入就可测试 绝对能跑起来 实现 java 通过 jna 包 调用dll