• 简介

    • 使用eclipse新建JAVA项目并生成.h头文件

      • 新建项目JniDemo
      • 新建测试类JniTest并声明一个native的方法
      • 使用Javah命令生成native方法的声明的C/C++头文件
      • 使用Visual Studio 2017新建c++动态链接库dll项目
    • 调用DLL方法

简介

本文笔者,详细的演示JAVA通过JNI调用C++动态链接库CLL的开发过程和涉及到知识点介绍,入门级简单易懂
(一)Java本机接口(Java Native Interface (JNI))是本机编程接口,它是JDK的一部分,JNI它提供了若干的API,实现了和Java和其他通信(主要是C&C++),JNI最常见的两个应用:从Java程序调用C/C++,以及从C/C++程序调用Java代码。
(二)开发环境JDK(jdk1.8.0_131\include下的头文件)
(三)开发工具eclipse和Visual Studio 2017(2013)

使用eclipse新建JAVA项目并生成.h头文件

新建项目JniDemo

新建测试类JniTest并声明一个native的方法

使用Javah命令生成native方法的声明的C/C++头文件

cmd下进入项目bin目录下执行以下命令

javah -classpath . -jni  包名.类名

此时在项目bin目录可看到com_bigbigbu_jni_JniTest.h头文件

使用Visual Studio 2017新建c++动态链接库dll项目

详细步骤请查看JAVA通过JNI调用C++动态链接库CLL(二)

调用DLL方法


  • 可能遇到问题

JAVA通过JNI调用C++动态链接库CLL(一)相关推荐

  1. JAVA通过JNI调用C++动态链接库CLL(二)

    简介 使用Visual Studio 2017新建c++动态链接库dll项目 编写JniDemo.h中getName实现并生成DLL 编写JniDemo.h在JniDemo.c实现getName方法 ...

  2. Java通过JNI调用C++动态链接库dll,并打在jar包内 ——JNA-JNI(一)

    Java通过JNI调用C++动态链接库dll,并打在jar包内--JNA-JNI(一) 系列文章: Java通过JNI调用C++动态链接库dll,并打在jar包内 --JNA-JNI(一) Java使 ...

  3. Java通过-jni调用c语言

    Java通过-jni调用c语言 一.编写JAVA程序 二.编译h头文件 三.编写C方法实现 四.生成对象文件 五.生成动态链接库 六.执行 一.编写JAVA程序 public class TestNa ...

  4. 转(JAVA的JNI调用)

    转载于:https://www.cnblogs.com/GDUT/p/3806771.html 由于JNI调用C和调用C++差不多,而且C++中可以混合写C代码,所以这里主要是写关于JNI调用C++的 ...

  5. java在主程序修改函数输出,Java通过JNI调用CUDA

    --NG 这段时间因为工作需要,要用到在java中调用cuda程序,但是令人蛋疼的是网上这方面的资料几乎没有,所以只好我自己摸索.我的想法是通过java的JNI接口调用cuda,但是很明显正常情况下是 ...

  6. Java通过JNI调用C++的DLL库

    2019独角兽企业重金招聘Python工程师标准>>> Java通过JNI实现调用C++程序 好久没碰JNI这个东西了,刚工作的时候自己写过点东西,这么些年很少用到,最近一个项目又用 ...

  7. java通过jni调用虚拟游戏控制器vjoy

    这几天打算做个游戏方向盘之类的,找到了vjoy,安装后会虚拟出1到16个游戏控制器,每个游戏控制器最多支持8轴128键,还有力反馈什么的,提供有skd可以编写client端控制这些游戏控制器的各个轴. ...

  8. 用java的jni调用C语言的API,实现带图形界面的一元稀疏多项式计算器

    实现步骤: 1) 完成Java代码,编写好Java调用类. 2) 编译你的Java类. 3) 用javah生成编译好的class文件对应的C/C++ 函数的头文件. 4) 实现头文件中的函数原型,编写 ...

  9. Java利用JNI调用c++代码简易例子演示

    点击打开链接 (提取码:8676) 一.首先简单交代一下两个问题: 1.什么是JNI                - - -     JNI的全名为Java Native Interface(Jav ...

最新文章

  1. 业界丨2018深度学习十大趋势:元学习成新SGD,多数硬件创企将失败
  2. CComboBox 置空
  3. unix网络编程——ioctl 函数的用法详解
  4. .net bitmap rgb数据_在3D空间,用点云数据学行人重识别特征
  5. CodeForces - 1560F2 Nearest Beautiful Number (hard version)(二分+数位dp)
  6. 对于刚开始使用该软件,应该在熟悉基本的markdown语法的基础上,再进行快捷键的使用!...
  7. php isinstance,Python issubclass和isinstance
  8. Mysql 数字类型转换函数
  9. (树莓派、Arduino、物联网、智能家居、机器人)传感器、机械装置、电子元件
  10. 昨天凌晨故宫网站崩了,被众多人“围攻”!留言亮了...
  11. alibaba/Sentinel 分布式 系统流量防卫兵
  12. 使用jmeter测试接口
  13. EXCEL实战技巧与数据分析(一)基础应用
  14. matlab 峰值提取,Matlab2019b信号峰值检测与提取
  15. 史上最全最强SpringMVC详细示例 实战
  16. 解决微擎框架出现Could not resolve: cloud.zhifun.cc (Domain name not found)问题
  17. 【图文详解】Android手机系统精简 搭建Linux集群硬件环境 Jdk运行HelloWorld
  18. [已推荐到体育博客,点击查看更多精彩内容] 篮球上的幽默时刻(多图)
  19. HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
  20. win下海康工业相机使用python读取视频并转换成cv格式

热门文章

  1. python批量生成图片_python图像处理-批量生成纯色图片
  2. Adobe Photoshop CC 国际认证考试学习指南(一)
  3. vb.net嵌入BAIDU OCR实例
  4. 【OpenCV-系列2】11 角点及角点检测
  5. 02 - jQuery选择器以及样式操作
  6. Android 开发前景如何
  7. 计算机三级 信息安全技术题库——选择题3
  8. aix系统oracle客户端配置文件,oracle客户端的配置
  9. [Django1.5]two-scoops-django-best-practices 笔记二
  10. JS正则表达式 最新手机号码正则表达式