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
}
然后使用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程序
注意:如果你的是64位系统,不要直接就生成!一定要先设置一下这个,要不然到时候调用会出错
按下F7 生成dll文件
然后将dll拷到一个文件夹,设置环境变量,这样eclipse才能找到你的dll库
将你的dll所在的路径放到path里面,这样eclipse就可以找到dll了
参考资料:
[1]http://electrofriends.com/articles/jni/jni-part1-java-native-interface/
首先说明一下我的开发环境
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统