第一步:使用javac命令编译java文件,生成class文件

javac Test.java

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

javah -jni 包名.类名

 注意:没有.class  而且 如果有包名的话 记得要把包名也写上

例:

文件路径:

文件所在的包,及内容  有native关键字声明的方法才会调用DLL库

命令行:

 

 之后会在CD的目录下生成一个 包名_类名.h的头文件夹

第三步:创建dll动态链接库项目(这里用的是vs2017、怎么安装自行百度)

创建好的DLL项目:

第四步:在C/C++项目中导入头文件

注意:此时还需要导入java的头文件 jni.h   jni_md.h

jni.h 以及jni_md.h的路径在 java的安装位置下的include文件夹内 以及win32下

第五步:编写好程序后打包DLL库

根据java类生成的头文件:

C++代码

编译:

生成的dll文件路径:(这里我选择是是64位因为我的jdk是64的——根据自己需要来选择生成对应的文件)

第六步:将生成的dll文件放入System32下(64位放入SysWOW64下)或者放入项目文件中

ps:我这里放入文件中(访日System32下的可以跳过这一步)

1.新建一个lib文件夹放入dll文件

2.右键项目build Path ->Configure Build Path

最后一步: 加载dll文件并运行

附:

Java和Jni类型对照表

java jni相关推荐

  1. java jni调用dll文件_Java通过jni调用动态链接库

    (1)JNI简介 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++).从Java1.1开始,JNI标准成为java ...

  2. Java JNI简单实现

    Java JNI简单实现 JNI(Java Native Interface)允许了Java和C&C++进行交互?这不折腾人嘛! 一.JNI简述 http://baike.baidu.com/ ...

  3. java jni开发_Java JNI开发实践记录

    当使用到JNI的时候,基本可以肯定Java的平台移植性注定减弱,接下来记录一次使用Java JNI开发的经历. 关于Java JNI的相关资料参见: 下面是使用JNI常见三种场景: 1.在Java应用 ...

  4. Java JNI初体验

    Java JNI初体验 JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植. 从Java1.1开始,JNI标准成为java ...

  5. Java JNI调用IC卡读卡器

    Java JNI调用IC卡读卡器 Java调用IC卡读卡器的DLL一般有以下2种方式: 1.使用JNative第三方库调用IC卡读卡器dll的接口. 2.使用JNI调用IC卡读卡器dll的接口. JN ...

  6. java JNI介绍

    java JNI介绍 文章目录 java JNI介绍 1. Java调用C++代码 2.C++代码调用java代码 JNI是Java Native Interface的全称. oracle文档中是这样 ...

  7. idea java jni 调试_IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇

    JNI(Java Native Interface),出于学习JNI的目的,为了能够更方便快速地运行程序.本文的是在IDEA中进行,而不在AndroidStudio,这样能够对NDK的工作过程有个更深 ...

  8. java jni key_JNIKeyProtection

    软件简介 JNIKeyProtection Android 使用 so 文件存储私密数据,并增加签名防盗机制 0x00 实际项目中引出的一些需求问题 有时你需要在客户端存放一些保密的数据,比如某些授权 ...

  9. java jni demo_Android JNI:让你一眼知之的JNI DEMO

    Android JNI:让你一眼知之的JNI DEMO 先按照步骤把 DEMO 跑成功. image 1. 使用 AS 创建一个 Android 项目 注意☑️: image 剩下的就 next fi ...

  10. java jni 参数_Java 与 JNI 互传数据的那些事

    常规类型的传递 这部分算是 JNI 的基本内容, 理所当然的有一大坨接口来干这些事情, 比如 NewString, GetStringChars, GetArrayLength, NewByteArr ...

最新文章

  1. [LOJ 6288]猫咪[CF 700E]Cool Slogans
  2. 数据结构习题精解 C语言实现+微课视频(习题解答、研考试题、微课视频)
  3. php退出登录后不能再登录了,php怎么实现退出登录功能?
  4. 学典教育计算机二级,层次化分类的离线中文签名真伪鉴别方法-计算机工程与应用.PDF...
  5. Tecplot如何提取某点数据并导出
  6. Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式
  7. 转载:Android Studio 3.1.2 新项目报错 AAPT2 error: check logs for details (Gradle 3.1.2)
  8. Linux键盘连续输入,关于修改键盘输入
  9. Zabbix agent 在windows上安装部署
  10. 中国摊铺设备市场趋势报告、技术动态创新及市场预测
  11. bzoj1207 [HNOI2004]打鼹鼠
  12. XX公司信息化建设草案
  13. excel中indirect函数使用方法和应用实例
  14. 如何写出有吸引力的软文?经典软文案例分析
  15. Efficient Protocols for Set Membership and Range Proof 学习笔记
  16. 清理垃圾文件属于计算机安全维护吗,垃圾文件清理,垃圾文件清理器
  17. CentOS 6.5下安装Confluence 5.4
  18. 这篇文章告诉你:信息学奥赛的由来,几岁学对孩子有多重要性
  19. 问号在c语言里面的作用,问号的作用是什么-写作基础知识
  20. 光速学会前端三件套之html

热门文章

  1. 图卷积神经网络(GCN)目前的应用领域
  2. 企业级数据中台应用架构和技术架构
  3. 【深度学习】平移不变性 (translation invariant)
  4. node-sass安装失败的解决方法
  5. 游戏开发物理引擎PhysX研究系列:将重力模拟关闭
  6. 吴恩达 DeepLearning 神经网络基础 第一课第三周编程题目及作业
  7. vue中怎么实现吸顶效果
  8. 外汇市场百年风云演变,当代“钱”途之选就看EBC金融集团
  9. 计算机视觉这个专业怎么样?
  10. eclipse中的buidpath配置(工程不build)