1、JNI调用C/C++程序(dll方式)
a)详细步骤
i.新建一个javaproject,命名为JNITest
ii.new一个packagecom.jthink
iii.在这个包中新建一个class,命名为Demo,修改Demo.java如下:
packagecom.jthink;
publicclassDemo{
static{
//System.loadLibrary("Demo");
//System.loadLibrary("jniDll");
}
publicnativevoidsayHello();
publicstaticvoidmain(String[]args){
//System.out.println(System.getProperty("java.library.path"));
newDemo().sayHello();
}
}
iv.编译所编写的java类
1.直接用eclipse编译(右击项目,runas->javaapplication)
2.打开工作空间中的项目JNITest,进入bin\com\jthink查看是否生成了Demo.class,如果有则表明编译成功
v.生成C/C++头文件
1.打开一个cmd,首先进入工作空间,依次打指令cdbinjavahcom.jthink.Demo
2.进入bin目录发现生成com_jthink_Demo.h说明生成成功
vi.生成dll库
1.使用VS2008创建一个项目
项目类型选择Win32,模板选择Win32项目,输入名称Demo和位置,单击确定
2.点击下一步
3.选择dll,附加选项中勾选“空项目”,然后点击完成
4.创建c文件testjni.c
#include<stdio.h>
#include"com_jthink_Demo.h"
JNIEXPORTvoidJNICALLJava_com_jthink_Demo_sayHello(JNIEnv*env,jobjectobj){
printf("helloworld\n");
}
5.拷贝java安装文件(C:\ProgramFiles\Java\jdk1.6.0_21\include)include下面的jni.h和include/win32(C:\ProgramFiles\Java\jdk1.6.0_21\include\win32)下面的jni_md.h以及刚刚生成的头文件com_jthink_Demo.h到项目中去,路径为:workspace\Demo\Demo这个文件夹下面,跟有个文件后缀为.user的同级
6.编译这个项目得到dll,右击解决方案->重现生成解决方案,在G:\qjc\C++\Demo\Debug生成dll文件
vii.拷贝刚刚那个dll到项目中,和src文件夹同级(或者放到system32中供调用,还有种办法是放到某个文件夹中,将这个路径加入到环境变量中)
viii.Java调用dll动态链接库
packagecom.jthink;
publicclassDemo{
static{
System.loadLibrary("Demo");
//System.loadLibrary("jniDll");
}
publicnativevoidsayHello();
publicstaticvoidmain(String[]args){
//System.out.println(System.getProperty("java.library.path"));
newDemo().sayHello();
}
}
ix.运行结果:
分享到:
相关推荐
本文档主要讲述的是Java本地调用JNI使用规范详解;JNI概述;JavaNative Interface的缩写,中文为Java本地调用。从Java1.1开始,JNI即成为Java标准的一部分。 JNI设计的目的是为了允许Java代码与其他语言进行交互。但...
android下JNI使用方法.JNI入门教程等网络资源合集
AIDL和JNI使用的小例子,文件为eclipse下的源码,配合我的博客可以查看如何使用aidl和jni
android jni使用curl进行http请求和文件下载,具体说明参考博客 http://blog.csdn.net/csdn49532/article/details/50680716
jni使用string相互调用 Java 传递 String 给C C 传递 jstring 给 Java
JNI使用技巧.doc
android jni使用java、c c++相互调用
JNI使用规范 教你如何是用JNI 本资源能够完全教会你如何使用JNI 从配置环境到最后的运用 JAVA书籍
这是一个jni使用实例,对想学习jni开发的同学有一定的帮助。希望有用。
android jni使用方法有图有文字
理解什么是 JNI JNI的操作步骤 JNI的适用场合
JNI使用demo,包含C/C++调用Native和jNativeC/C++ Cmake文件的使用和配置规则,注册规则 JNI函数的动态注册和动态注册示例 同时附上JNI文章详细解说
Android上编写Native jni调用,java调用c ,c调用java。
JNI,全称为Java Native Interface,即Java本地接口,JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C++机型交互。即可以在Java代码中调用C/C++等语言的代码或者在C/C++代码中调用Java代码。由于JNI...
这是一个详细的 JNI 使用文档,包括了JNI中C及C++的语法
例子通过jni调用libzip库读取压缩文件,和通过ndk自带api接口读取assets资源文件,附测试工程。
android,使用jni,java调用c代码程序示例。
这是我自己写的jni jobjectarray的demo共享一下
java中NDK的使用,java Native Interface的使用技巧
int float double string char * C->Java Java->C 实例