记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的!
本站域名:www.xyzlotus.cn
2006-11-15 | JNI简单用法
上一篇 /
下一篇 2007-12-18 08:45:56 / 天气: 冷
/ 心情: 平静
/ 个人分类:JAVA
学习了JNI,大概总结了一下。不过在做的过程中,我也碰到了好多问题,不过终于都搞定了,很有成就感的说。
1. Java class
package com.xida.jnitest;
public class Testjni {
native void testJNIcall();--------------通过NATIVE方法调用C的方法。
static {
System.loadLibrary("testJNIImpl");
}
public static void main(String[] args) {
Testjni test = new Testjni();
test.testJNIcall();
}
}
2. 编译 java class
3.javah—生成C的.h 文件
javah -jni -classpath D:\myworkspace\JavaTrainning -o Testjni.h com.xida.jnitest.Testjni
4. c/c++ file
#include <jni.h>
#include "Testjni.h"
JNIEXPORT void JNICALL Java_com_xida_jnitest_Testjni_testJNIcall
(JNIEnv *env, jobject jobj)
{
printf("aaaaaaaaaaaaaaaaa");
}
5.make dll
cl -Ic:/j2sdk1.4.2_09/include -Ic:/j2sdk1.4.2_09/include/win32 -LD testJNIImpl.cpp -FetestJNIImpl.dll
如果大家对VC很熟悉的话,可以用VC建立一个空的win32 Dynamic Link library工程,然后把刚才产生的头文件包括进去,然后自己写.cpp文件。注意在tools/option下的Directories选项中include进去jdk目录下的include目录,和include目录下的win32目录,最后编译产生.dll文件。
6.将.dll文件拷贝到工程的目录下,注意要把当前工程的目录设到PATH里边去,要不运行会出错误。
或者将.dll文件拷贝到PATH的路径下,比如 jdk/bin目录下,运行就可以了
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: