一.开发一个dll动态库
1.cpp
#include "testJNI.h"
#include <windows.h>
#include <iostream>
//Java_包名(com_xxx_xxx_)_类名_函数名
//Java_com_lzb_test_TestJNI_test
JNIEXPORT void JNICALL Java_TestJNI_test(JNIEnv*, jobject) {
using namespace std;
cout << "test";
}
2.引入Java的jni头文件
这两个头文件都要拷到vsstudio里
3.写头文件
/* 只要引入一个jni.h就行,他里面引入了jni_md.h */
#include "jni.h"
#ifndef _Included_TestJNI
#define _Included_TestJNI
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_TestJNI_test
(JNIEnv*, jobject);
#ifdef __cplusplus
}
#endif
#endif
4.打包
二.写Java
//注意不写package
public class TestJNI {
{
/**
* 加载dll地址
*/
System.load("C:\\Users\\dell\\Desktop\\jni\\testJNI.dll");
}
/**
* 就这个natice关键字.标记了这个接口
*/
public native void test();
public static void main(String[] args) {
new TestJNI().test();
System.out.println("12356456");
}
}
3.编译
1.打开cmd
2.执行到文件目录下执行javac,进行编译
这里因为报了一个错
所以改了一下编码
javac -encoding UTF-8 TestJNI.java