博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse下建立简单JNI程序实现返回double类型
阅读量:4448 次
发布时间:2019-06-07

本文共 1537 字,大约阅读时间需要 5 分钟。

 

在Eclipse下生成时要注意,由于通常是在package里面添加类,而非像单独建立工程时独立添加,所以,在编译的时候,都需要进入包所在的文件夹, javac 包名.类名 这样的形式来编译,同理,javah命令也一样

首先建立两个java文件:

GetPara.java:

1 package com.niiam;2 3 public class GetPara {4     public native double getparameter();5 }

这里建立了一个类,在类中定义了一个本地实现的方法getparameter(),该方法没有传入参数,传出一个固定的double类型数据,后面将由C++语言实现

 

建立一个Test.java进行测试:

1 package com.niiam;2 3 public class Test {4 public static void main(String[] args) {5         System.loadLibrary("getpara");6         GetPara para=new GetPara();7         System.out.println("the height is:" + para.getparameter());8     }9 }

注意!!!

这里是在main方法中引入后面我们即将生成的getpara.dll链接库

也可以将该语句放在GetPara这个类里面,并用static{}进行修饰,这样,在每次实例化这个类时,都相当于实现了引入库操作。

在跟SpringBoot项目结合时要用第二种方式,切记!

 

进入com.niiam包所在的文件夹

javac com.niiam.GetPara.java

javac com.niiam.Test.java进行编译

 

javah com.niiam.GetPara.java生成.h文件com_niiam_GetPara.h

注意,这里的.h文件是包含包名的,其内部的函数声明:

JNIEXPORT jdouble JNICALL Java_com_niiam_GetPara_getparameter

  (JNIEnv *, jobject);

也是有包名存在的,与手动建立工程项目的情况不同,生成的dll文件也不同,不可等同

 

在vs中建立console项目,输出设置为dll

引入头文件,将jni.h  jni_md.h所在目录都引入包含目录

建立getpara.cpp文件

1 #include "com_niiam_GetPara.h" 2  3  4  5 JNIEXPORT jdouble JNICALL Java_com_niiam_GetPara_getparameter 6 (JNIEnv *, jobject) 7 { 8     double a = 104.06; 9     return a;10 }

编译生成dll文件

注意由于java platform是x64的平台,因此这里生成的dll文件也必须是x64的

 

生成的dll文件放在哪里,这里有几种选择:

1、放到磁盘制定目录,将该目录添加进环境变量path中,这样,运行时即可引入。这种方式同时适合于在Eclipse中运行,以及在控制台运行java com.niiam.GetPara

2、放到项目目录中去,并将项目目录添加进java build Path中,如图:

或者是:

 

 经测试,放到这两个地方都可以

 

这样直接在Eclipse中可直接运行

 

转载于:https://www.cnblogs.com/zhile/p/8318446.html

你可能感兴趣的文章
移动端调用电话、短信、唤起QQ和使用百度地图
查看>>
开发时间及内容(二)
查看>>
C++primer 10.2.1节练习
查看>>
perl 执行mysql select 返回多条记录
查看>>
mojo 关闭utf8
查看>>
tomcat架构分析(valve机制)
查看>>
消息队列RabbitMQ基础知识详解
查看>>
接口、抽象类、方法复写、类Equals方法重写
查看>>
快学Scala习题解答—第十章 特质
查看>>
Ffmpeg 定位文件(seek file)
查看>>
数据结构与算法随学随记
查看>>
微软Azure已开始支持hadoop--大数据云计算
查看>>
统计_statistics_不同的人_大样本_分析_统计方法_useful ?
查看>>
wampserver 绑定域名 外部可以正常访问
查看>>
将博客搬至CSDN
查看>>
sqoop/1.4.6/下载
查看>>
https协议及与http协议的比较
查看>>
mongodb数据备份与恢复
查看>>
ubuntu安装(owncloud-docker安装)
查看>>
(十一)tina | openwrt关闭调试串口(DEBUG UART)
查看>>