java代码:
编译成C头文件:
生成的C头文件:
public class DllDemo {
public native void displayHelloWorld() ;
static{
System.loadLibrary("liufei hello word !") ;
}
public static void main(String[] args) {
new DllDemo().displayHelloWorld() ;
}
}
编译成C头文件:
javac DllDemo.java
javah DllDemo
生成的C头文件:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class DllDemo */
#ifndef _Included_DllDemo
#define _Included_DllDemo
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: DllDemo
* Method: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_DllDemo_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
//方法名规则:Java_全类名_方法名(JNIEnv *env, jobject obj)
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
调用gcc生成HelloWorld.dll文件