一、在要使用到C++代码的类文件中声明一个native方法,例如:

 public class TestNative{

     public native void test();

 }

二、javac编译此java文件,然后使用javah TestNative命令生成一个头文件

三、使用visual studio工具新建dll项目

然后将jdk目录下的inlcude文件夹下的jni.h和jawt.h以及include/win32文件夹下的jin_md.h和jawt_md.h文件添加在上面的dll项目中,然后将我们之前生成的TestNative.h文件中的#include<jni.h>改为#inlcude"jni.h"因为引号是在本地查找头文件,

而<>实在标准库函数中查找。

 /* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class TestNative */ #ifndef _Included_TestNative
#define _Included_TestNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: TestNative
* Method: test
* Signature: (LTestNative/JavaObject;)V
*/
JNIEXPORT void JNICALL Java_TestNative_test
(JNIEnv *, jobject); #ifdef __cplusplus
}
#endif
#endif

然后我们在C++中实现这个函数即可,例如:

 // Dll_native.cpp: 定义 DLL 应用程序的导出函数。
// #include "stdafx.h"
#include "TestNative.h"
#include <iostream> JNIEXPORT void JNICALL Java_TestNative_test(JNIEnv *, jobject) { std::cout << "hello C++" << std::endl;
}

最后编译项目生成一个dll文件;

四、最后将生成好的dll文件放到java项目中,使用代码调用:

 public class TestNative{

     public native void test();

     public static void main(String[] args){

         System.loadLibrary("Dll_native");

         TestNative tn = new TestNative();
tn.test();
} }

最新文章

  1. Eclipse利用Axis2插件构建Web Service并测试
  2. MySQL安装,启动
  3. oracle/sqlserver 递归
  4. Linux统计文件个数
  5. iOS : 静态库制作
  6. S1 :闭包
  7. cas改造随笔
  8. Java JPA 查询实体部分字段
  9. weekly review
  10. Linux设备驱动实现自己主动创建设备节点
  11. 常用颜色RGB、灰度值
  12. swiper 自定义分页器的使用
  13. ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  14. JAVA实现二叉树(简易版--实现了二叉树的各种遍历)
  15. hadoop的核心思想【转】
  16. Chrome Input框老是有输入记录的终极解决方案
  17. 一个或多个音频服务未运行 win7 错误1079:此服务的账户不同于运行于同一进程上的其他服务账户
  18. An ac a day,keep wa away
  19. Struts2_day01--导入源文件_Struts2的执行过程_查看源代码
  20. Spark常用算子-value数据类型的算子

热门文章

  1. jquery控制元素的隐藏和显示的几种方法。
  2. 【OCP-12c】2019年CUUG OCP 071考试题库(78题)
  3. Java-File类获取目录下文件名-遍历目录file.listFiles
  4. 细化Azure RBAC权限
  5. 【3】JMicro微服务-服务超时,重试,重试间隔
  6. leetcode-73-矩阵置零
  7. 38.oracle开篇
  8. java 字符串(String)常用技巧及自建方法模块汇总
  9. 算法图解学习笔记01:二分查找&amp;大O表示法
  10. Windows网络服务渗透攻击分类