转自: http://www.cnblogs.com/baokang/p/4979243.html

因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是研究了一下Java Jni的使用方法。突然发现Android Jni 使用跟这个好像(麻蛋,不就是一样的吗,但是Android中需要使用so动态链接库)。

第一步 创建Java工程,命名JniDemo,添加JniDemo.java

第二步 在Java类中添加native方法

/**
* @author Baokang
*/
public class JniDemo{
public native static void set(int i);
public native static int get();
}

第三步 使用javah命令生成头文件

在cmd中执行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 头文件

第四步 创建DLL项目,使用Vs2010

创建Win32项目,项目名字JniDemo

第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下

其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下

在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改为 #include "jni.h"

第六步 在Jni.cpp中实现C++方法

第七步 生成64位dll库

先修改配置管理器

然后生成64dll库

第八步 把64位dll库拷贝至Java JniDemo项目根目录下,修改JniDemo.java

注意64位dll在X64目录下,然后修改JniDemo.java如下

 1 package com.bk.jnidemo;
2
3 public class JniDemo {
4 static{
5 System.loadLibrary("JniDemo");
6 }
7 public native static void set(int i);
8 public native static int get();
9
10 public static void main(String[] args) {
11 set(100);
12 System.out.println(get());
13
14 }
15 }

第九步 运行,搞定

最新文章

  1. Sqlserver 中系统表sysobjects、syscolumns以及函数object_id
  2. [MySQL Reference Manual] 8 优化
  3. 【转】Entity Framework技术系列之7:LINQ to Entities
  4. chrome浏览器插件的开启快捷键
  5. JS添加MD5,JS提示框
  6. 安装SQL Server2008,要重启机器,解决办法
  7. 【Winfrom】简单的焦点设置问题
  8. arcgis 栅格计算器(Spatial Analyst/Raster Calculator)
  9. Wpf实现图片自动轮播自定义控件
  10. 关于AS3里的Matrix3D中的appendXXX和prependXXX
  11. IIS7中配置脚本错误解决方案
  12. Linux的nginx环境的vue 部署
  13. 01_学习java WEB涉及到的相关技术
  14. Java应用程序使用系统托盘资源
  15. 【微信小程序canvas】实现小程序手写板用户签名(附代码)
  16. 通过URL传递中文参数的乱码处理
  17. php(面向对象的基本介绍)
  18. Linux文件权限属性后面有个点
  19. Javaweb学习笔记——(一)——————进入html
  20. Python学习1 基础数据类型

热门文章

  1. Android中的常见通信机制和Linux中的通信机制
  2. python学习 01 变量
  3. DB2恢复一例 SQL0928N
  4. 解决Class &#39;swoole_server&#39; not found
  5. POJ 1860
  6. 怎样过滤跨站恶意脚本攻击(XSS)
  7. Bootstrap学习-网格系统
  8. JDBC详解2
  9. linux c编程:线程互斥二 线程死锁
  10. Iptalbes练习题(一)