IntelliJ idea 2018 平台下JNI编程调用C++算法(一)

  • Post author:
  • Post category:其他


参考来源:


http://blog.sina.com.cn/s/blog_b37338430101f3zq.html


http://www.cnblogs.com/xiaocainiao2hao/p/5619862.html


https://blog.csdn.net/aslgm_1/article/details/71514617






huachao1001


的专栏:


http://blog.csdn.net/huachao1001/article/details/53906237




本文环境:IntelliJ idea2018.2+Visual Studio 2017

项目:JavaWEB+Win32控制台

声明:本人是个新手小白。因为项目是C++算法写的,但是要用网页调用,所以先学习JavaWEB调用C++程序作为尝试。参考了网上的一些教程,结合自己的理解与出现的错误,写成总结日后参考。不足之处请提出。

首先明确本文的步骤:

  1. 在Java中新建一个类。
  2. 生成JNI头文件。(此处有两种方法:2.1手动输入javah命令生成头文件、2.2 一键生成头文件)
  3. 在VS2017下引入头文件。
  4. 将dll添加进JavaWEB工程,成功运行。

1.在Java中新建类

利用IntelliJ  idea新建一个Java工程,在src中新建一个Java类,名称命名“testNative”。之后弹出testNative.java。

在testNative.java中写如下程序:

函数System.loadLibrary()是加载dll(windows)或so(Linux)库,只需名称即可,无需加入文件名后缀(.dll或.so)。

native关键字将函数sayHello()声明为本地函数,由C/C++实现。具体的实现就在hello.dll(Windows平台)或hello.so(Linux平台)中。

2.生成JNI头文件


  • 2.1 手动输入javah命令生成头文件

  • 2.2 一键生成头文件

2.1 手动输入javah命令生成头文件

JNI生成头文件是通过JDK中提供的javah来完成,javah在

{JDKHome}/bin

目录中。用法如下:

javah -jni -classpath (搜寻类目录) -d (输出目录) (类名)

例如,将

E:\Porject\out\com\huachao\java

目录中的

HelloJNI.class

生成头文件,并放入到

E:\Project\jni

中:

javah -jni -classpath  E:\Porject\out\com\huachao\java -d E:\Project\jni



版权声明:本文为wsxzhbzl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。