废话不多说直接上代码
package com.*******.Cproject;
public class helloWorld {
static {
System.loadLibrary("testDll");
System.out.println("加载dll 成功!!!!!!");
}
public static native void HelloWorld();
public static native void say();
public static void main(String[] args) {
helloWorld.HelloWorld();
helloWorld.say();
}
}
执行javaH 生成c头文件
javah -classpath D:\project\JDBCDemo\bin -d D:\project\JDBCDemo\src -jni com.*******.Cproject.helloWorld
生成com_*****_Cproject_helloWorld.h c的头文件 其中头文件有相应的头文件 例如jni.h 在jdk下include文件夹下引用即可.
#include "jni.h"#ifndef _Included_com_*****_Cproject_helloWorld
#define _Included_com_*****_Cproject_helloWorld
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_com_*****_Cproject_helloWorld_HelloWorld
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_com_*****_Cproject_helloWorld_say
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
c文件的内容dllmain.c
#include "com_******_Cproject_helloWorld.h"
JNIEXPORT void JNICALL Java_com_******_Cproject_helloWorld_HelloWorld
(JNIEnv *env, jclass obj){
printf("helloWorld!!!!!!!!!!!\n");
}
JNIEXPORT void JNICALL
Java_com_******_Cproject_helloWorld_say(JNIEnv *env, jclass obj){
printf("终于加载成功了!!!!!!!!!!!!!!!!!!!!!!!!");
}
如果用IDE编译就可以生成dll
生成的dll文件添加myeclipse路径下即可运行!