您的位置:首页 > 编程语言 > Java开发

Java jni使用

2015-09-25 14:18 609 查看
经过自己的摸索,终于用java调用C写的一个HelloWorld程序,期间遇到了一些问题,总结分享一下。

首先说明一下我的开发环境

1、win7 64位操作系统

2、java jdk jdk1.8.0_51

3、vs2013

4、eclipse 4.5

这篇博客知识介绍怎么运行一个hello world程序

首先在eclipse里面新建一个java 工程

然后新建一个Hello World类

package com.test;

public class HelloWorld {

static //static initializer code

{

System.loadLibrary(“CLibHelloWorld”);

}

public native void print(); //native method

public static void main(String[] args)
{
HelloWorld hw = new HelloWorld();
hw.print();
}


}

然后使用cmd命令生成.h文件

首先打开cmd

然后切换到你java工程目录**/src目录下

然后运行javah -jni com.test.HelloWorld

就可以看到在src目录里面多了一个com_test_HelloWorld.h文件

到此java部分就完成了

其中public native void print();就是要用C实现的代码

VS部分

打开vs2013 新建空的工程



创建好工程之后配置工程属性







注意附加工程目录选择JDK安装目录下的include 和include下的win32目录,

例如我的就是D:\Program Files\Java\jdk1.8.0_51\include 和D:\Program Files\Java\jdk1.8.0_51\include\win32

然后将刚才javah生成的那个.h文件拷到vs工程目录下


然后编写C程序

#include "com_test_HelloWorld.h"
#include "jni.h"
#include  "stdio.h"

JNIEXPORT void JNICALL Java_com_test_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello world\n");
return;
}


注意:如果你的是64位系统,不要直接就生成!一定要先设置一下这个,要不然到时候调用会出错





按下F7 生成dll文件

然后将dll拷到一个文件夹,设置环境变量,这样eclipse才能找到你的dll库



将你的dll所在的路径放到path里面,这样eclipse就可以找到dll了

参考资料:

[1]http://electrofriends.com/articles/jni/jni-part1-java-native-interface/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java eclipse jdk c语言