eclipse调用JNI之环境的搭建
因为项目中要在Java中调用C++编好的代码,即用eclipse调用动态链接库,故花了点时间研究在eclipse中使用JNI。
有时候因为Java本身特性的限制,单独使用Java语言可能不能完全满足应用程序的需要,这时需要使用JNI(JavaNative Interface)来编写Java本地方法,用来处理那些不能完全用Java语言编写应用程序的情况。通过JNI技术,Java开发者可以调用C/C++等其他语言编写的代码。JNI是Java语言和其他语言间的一座桥梁,通过访问JNI定义的接口来获得服务,在JNI的另一面可以通过C/C++或其它语言实现这些接口。
本文实现的目的是:在Java中定义一个方法,在C++中实现这个方法,在方法内部输出“Hello World",然后再回到Java中进行调用。
本文使用的环境是:win10 + eclipse(eclipse-jee-neon-2-win32)+ VC++6.0(绿色英文版)。
第一步:在Eclipse中建立一个类:JNIDemo
package com.jni.demo;public class JNIDemo {//定义一个本地方法public native void sayHello();public static void main(String[] args) {//调用动态链接库System.loadLibrary("JNIDemo");JNIDemo jniDemo = new JNIDemo();jniDemo.sayHello();}}
其中sayHello就是要在C++中实现的方法。
第二步:使用javah命令将JNIDemo生成.h的头文件:
命令如下:
G:\Code\eclipse\JNIDemo\bin>javah com.jni.demo.JNIDemo
命令执行成功后会在bin目录中生成头文件:com_jni_demo_JNIDemo.h
第三步:使用VC++6.0生成.dll文件
1、在VC++6.0中新建一个项目JNIDemo,项目类型为Win32 Dynamic-Link Library,点击OK。
2、在弹出的窗口中选择A simple DLL project,点击Finish。
3、打开项目所在的文件目录,将步骤2中生成的com_jni_demo_JNIDemo.h文件复制到此目录。然后点击工程窗口左边的FileView,切换到文件浏览模式。在Header Files上点击右键,选择Add Files to Folder,选择TestHello.h文件,点击OK。
4、打开StdAfx.h文件,再最后面添加:
#include <jni.h>
#include "com_jni_demo_JNIDemo.h"
5、打开JNIDemo.cpp文件,在最后面添加一段代码:
JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj)
{ printf("Hello World!\n");
}
6、在VC的菜单上选择Tools-Options,打开选项对话框,在Directories文件夹,添加上jdk所在文件夹下的include和include\win32文件夹。
其实就是要把jni.h和jni_md.h文件添加的工程上来。
7、点击VC6.0上的菜单项Build-Build All,生成JNIDemo.dll。编译成功后,生成JNIDemo.dll文件在C++工程中的Debug目录中。
第四步:调用.dll文件。
有两种方式:
第一种方式:将VC++项目Debug文件夹中的JNIDemo.dll复制到JNIDemo.class所在的文件夹中。然后在命令行下输入java com.jni.demo.JNIDemo, 输出Hello World!
第二种方式:将JNIDemo.dll文件添加到path环境变量中
然后在eclipse中运行:
转载于:https://www.cnblogs.com/yzy-blogs/p/6597327.html
eclipse调用JNI之环境的搭建相关推荐
- [Angular2]eclipse中angular2开发环境的搭建
本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan 环境准备 1.eclipse neon 2.网络连接 插件地址 eclipse的插件市场地址: htt ...
- Eclipse+pyDev进行Python环境的搭建
1.下载eclipse和Python最新版本并安装: 2.在eclipse中点击help----install new software ,在弹出的对话框中Work With后面输入链接http:// ...
- eclipse集成weblogic开发环境的搭建
1.下载Eclipse的weblogic插件,如果本来就有Eclipse则选择下载插件oepe-12.1.2.3-kepler-repository.zip或者在线安装,否则直接下载已经集成weblo ...
- eclipse+gcc STM32开发环境搭建及调试
记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...
- 手把手教你通过Eclipse工程配置调用JNI完全攻略
本文地址:http://www.cnblogs.com/wavky/p/JNI.html 当你找到并鬼使神差地打开这个博文的时候,我敢肯定你已经知道什么是JNI,基本概念就不粘贴了. 百度出来的JNI ...
- 搭建Eclipse C/C++开发环境
搭建eclipse C/C++开发环境: 1.下载并安装Eclipse for C++:http://www.eclipse.org.最新版是基于Eclipse 3.5 galileo,文件名 ...
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173 一.Java 开发环境的搭建 这里主要说windows环境下怎么 ...
- Java开发环境的搭建以及使用eclipse创建项目
一.Java 开发环境的搭建 这里主要说windows环境下怎么配置Java环境.如果是Linux环境参考本博客另一篇文章即可: Linux环境安装卸载JDK 1.首先安装JDK java的SDK简称 ...
- linux 下 eclipse 开发环境的搭建
在windows平台下开发习惯了各种ide,不得不承认ide给我们开发带来的便捷.于是希望在linux平台下也希望找到一个合适的ide.这就想起来了eclipse具有跨平台性. 那么就开始搭建环境吧. ...
最新文章
- zencart安全辅助小脚本
- Yii2 主从 数据库
- long类型20位示例_Java Long类lowerOneBit()方法与示例
- mysql主从复制实践之单数据库多实例
- Android移动应用基础教程【数据存储】
- 如何反编译dll文件
- 贪心科技机器学习训练营(九)
- PAT --- 1055.集体照 (25 分)
- Redis - 听说 Dragonfly 宣称比我快 25 倍
- specular图使用方法_CSharpGL(54)用基于图像的光照(IBL)来计算PBR的Specular部分
- TCP通讯中发送文件
- PHP接口_短信发送接口
- Navicat 图形化界面工具
- 【合天网安】FCKeditor 2.4.3文件上传漏洞
- 读论文,第十二天:FMG Versus EMG: A Comparison of Usability for Real-Time Pattern Recognition Based Control
- 您需要Administrators提供的权限才能对此文件进行更改
- 昂达v80 plus linux,昂达(ONDA)V80 Plus平板电脑整体性能评测-ZOL中关村在线
- 啊啊,终于搞明白了,原来注解是这么一回事。6000+字理解注解【一】
- 965年10元纸币收藏价值
- 【网络协议趣谈】CDN静态和动态数据缓存