博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java调用C++类库--JNI
阅读量:5846 次
发布时间:2019-06-18

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

JNI是Java平台中的一个重要的功能,这里我把我做的Demo总结一下,分享一下,我会把每个步骤尽量的详细的展现出来。
这里我就不讲解JNI的原理了,google,百度一下,到处都是
好了,直接来讲步骤吧,文章最后给出了C++和Java的Demo
第一步:安装Java jdk,eclipse。
第二步,配置Java环境变量,
第三步,新建一个Java应用程序,名为:TestNativeCode,包名:com.liyong.TestNativeCode,类名:TestNativeCode
第四步,在TestNativeCode类里面添加如下代码:
package com.liyong.TestNativeCode;public class TestNativeCode {    public native void sayHello();    public static void main(String[] args) {        System.loadLibrary("NativeCode");        TestNativeCode nativeCode=new TestNativeCode();        nativeCode.sayHello();        }}

第五步,编译Java文件

1,运行-->cmd-->进入TestNativeCode项目的src目录下编译该Java类,命令 javac ./com/liyong/TestNativeCode/TestNativeCode.java。在该TestNativeCode.java目录下会生成TestNativeCode.class文件
2,使用javah生成头文件,命令 javah -jni com.liyong.TestNativeCode.TestNativeCode。在src目录下生成com_liyong_TestNativeCode_TestNativeCode.h文件。

第六步,编译C++类库

1,打开VS2008,新建Win32 项目NativeCode,如图所示:

确定后,在“应用程序类型”中选择“DLL”,如图:

2,将上一步生成的com_liyong_TestNativeCode_TestNativeCode.h添加到项目头文件中。

3,在NativeCode项目的“源文件”中添加NativeCode.cpp文件,具体如蓉如下

#include "stdafx.h"#include "com_liyong_TestNativeCode_TestNativeCode.h"#include 
using namespace std;JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_sayHello(JNIEnv * env, jobject obj){cout<<"Hello NDK!"<

4,使用Release编译,生成NativeCode.dll,将其拷贝到java环境变量Java_Home的Bin目录下,比如,LZ的Java_Home目录是

C:\Program Files\Java\jdk1.6.0_25,将NativeCode.dll拷贝到C:\Program Files\Java\jdk1.6.0_25\bin目录下。

第七步,运行Java应用程序,会输出“Hello NDK!”,Ok,成功!这里只是一个简单的例子,具体的应用就靠大家举一反三啦

这里给出Demo的源码:C++: Java:

转自:http://www.cnblogs.com/cpcpc/archive/2012/08/13/2636199.html

转载于:https://www.cnblogs.com/chensheng-zhou/p/5430867.html

你可能感兴趣的文章
KMeans (K均值)算法讲解及实现
查看>>
23种设计模式之装饰者模式
查看>>
为什么不应该使用Zookeeper做服务发现?(转载)
查看>>
Vue源码探究-类初始化函数详情
查看>>
Docker 数据管理
查看>>
什么是最适合云数据库的架构设计?
查看>>
【前端工程师手册】30分钟看懂函数防抖和节流
查看>>
JavaScript-面试
查看>>
Java 内部类(10)
查看>>
Python模块
查看>>
系统优化怎么做-开篇
查看>>
js原型链
查看>>
《CSS世界》笔记三:内联元素与对齐
查看>>
【开源】Tsar——灵活的系统和应用采集软件
查看>>
自己动手搭建webpack
查看>>
centos安装mysql
查看>>
我终于搞清楚了和String有关的那点事儿。
查看>>
Redux 的简单总结
查看>>
ReactNative-HMR原理探索
查看>>
VUE使用element-ui的upload组件自定义文件列表
查看>>