JNI初探一(windows平台开发)

王朝java/jsp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

首先,在java源文件中把我们需要声明类中的函数为native,例如:

sam4java.java

public class Sam4java

{

public Sam4java(){

}

public native int intMethod(int n);

}

然后

javac sam4java.java,生成了sam4java.class;

javah sam4java,生成了sam4java.h

生成的c函数原形

JNIEXPORT jint JNICALL Java_sam4java_intMethod(JNIEnv *, jobject, jint);

注意:这个函数原形包含了3部分,(1)Java固定前缀 (2)sam4java类名 (3)iniMethod函数名

参数就不在这里讨论,以后补充.

根据生成的sam4java.h,自己实现sam4java.c文件,编译成功后就可以获得sam4java.dll

应为没有放到package里,所以运行时很简单,不需要考虑目录结构,把所有文件拷贝到同一个目录即可。

给sam4java.java增加main函数,如下:

public static void main(String[] args)

{

System.out.println("load lib sam4java start ......");

System.loadLibrary("sam4java");

System.out.println("load lib sam4java completed.");

Sam4java sam4java = new Sam4java();

int square = sam4java.intMethod(5);

System.out.println("intMethod: " + square);

}

最后,重新编译 javac sam4java.java

运行 java sam4java

如果我们把sam4java放到package com.me.test里,我们又该怎么办呢?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航