Java调用C++类库--JNI
2016-04-25 14:30
369 查看
JNI是Java平台中的一个重要的功能,这里我把我做的Demo总结一下,分享一下,我会把每个步骤尽量的详细的展现出来。
这里我就不讲解JNI的原理了,google,百度一下,到处都是
好了,直接来讲步骤吧,文章最后给出了C++和Java的Demo
第一步:安装Java jdk,eclipse。
第二步,配置Java环境变量,java环境变量配置
第三步,新建一个Java应用程序,名为:TestNativeCode,包名:com.liyong.TestNativeCode,类名:TestNativeCode
第四步,在TestNativeCode类里面添加如下代码:
第五步,编译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文件,具体如蓉如下
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++:NativeCode.rar Java:TestNativeCode.rar
转自:http://www.cnblogs.com/cpcpc/archive/2012/08/13/2636199.html
这里我就不讲解JNI的原理了,google,百度一下,到处都是
好了,直接来讲步骤吧,文章最后给出了C++和Java的Demo
第一步:安装Java jdk,eclipse。
第二步,配置Java环境变量,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 <iostream> using namespace std; JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello NDK!"<<endl; //printf("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++:NativeCode.rar Java:TestNativeCode.rar
转自:http://www.cnblogs.com/cpcpc/archive/2012/08/13/2636199.html
相关文章推荐
- 删除指定文件夹里的文件(1)
- 一个简单的MD5加密算法C语言示例程序
- C/C++复习:整数排序(2)
- (转)C/C++ 中使用正则表达式 v
- (转)C/C++ 中使用正则表达式
- 图解VC++开发ActiveX控件C#调用
- C/C++复习:逆向输出数字
- C/C++复习:数组作实参,指针作形参排序
- c++不常用功能之——内联函数
- C语言do while语句
- C语言while循环
- C语言for循环
- C++(学习笔记)——VS2015静态编译libcurl
- VC++ 编程实现开机自启动
- 1051. 复数乘法 (15)
- 转载值得推荐的C/C++框架和库 (真的很强大)
- C语言goto语句
- VC++常用数据类型转化
- C语言switch语句
- 【akMOOC】1-1Nice to meet you!