Java中调用dll中本地代码方法介绍:
环境:
JDK:
C:\Documents and Settings\mzq>java version
java version _″
Java(TM) SE Runtime Environment (build _b)
Java HotSpot(TM) Client VM (build b mixed mode sharing)
本地代码编译环境:
MS Visual Studio
) 编写Java代码
示例代码如下:
public class JNITest {public static void main (String args[]) { if (argslength > ) { int x = new Integer(args[])intValue(); int a = new mynative()cubecal(x); Systemoutprintln(a); }}} class mynative {public native int cubecal(int x);static { SystemloadLibrary(mynative);}}注意mynative类内容即可
)生成为本地方法调用的mynativeh头文件
D:\workspace_java\JNI\src>javac JNITestjava
D:\workspace_java\JNI\src>javah jni mynative
)编写本地代码
注意:代码扩展名一定要用c
根据mynativeh编写
#include jnih int cube(int x) {return (x*x*x);}JNIEXPORT jint JNICALL Java_mynative_cubecal(JNIEnv *e jobject o jint x) {return cube(x);})解决依赖关系
将$JAVA_HOME$/include/jnih $JAVA_HOME$/include/win/jni_mdh
及mynativeh复制到vs proj目录下
)编译生成mynativedll
)复制mynativedll到存放Java项目目录中运行即可
D:\workspace_java\JNI\bin 的目录
: mynativeclass
: JNITestclass
: mynativedll
个文件 字节
个目录 可用字节
D:\workspace_java\JNI\bin>java JNITest