asp.net 4.0网站开发与项目实战 pdf,短链接生成源码,自助外贸英文网站建设,wordpress控制面板最近有个项目要调用原有的DLL文件#xff0c;本来准备使用JNA#xff0c;可是客户不同意#xff0c;非要使用JNI的方式。万般无奈之下#xff0c;只能重新使用JNI#xff0c;现将JAVA调用动态链接库的一般方法总结如下。 JNI是Java Native Interface#xff08;JAVA本地调… 最近有个项目要调用原有的DLL文件本来准备使用JNA可是客户不同意非要使用JNI的方式。万般无奈之下只能重新使用JNI现将JAVA调用动态链接库的一般方法总结如下。 JNI是Java Native InterfaceJAVA本地调用的缩写。从Java1.1开始Java Native Interface(JNI)标准成为java平台的一部分它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言尤其是C和C而设计的但是它并不妨碍你使用其他语言只要调用约定受支持就可以了。 使用JNI调用DLL文件的步骤一般有以下几步 1、编写带有native声明的方法的java类 2、使用javac命令编译所编写的java类 3、使用javah命令编译成头文件 4、使用C/C实现本地方法包含第3步生成的头文件 5、将C/C编写的文件生成动态连接库 下面将通过实例详细介绍上面5步的具体实现 – 编写带有native声明的方法的java类代码如下 View Code 1 package com.wanggc.jni;2 3 public class MyJniNativeMethods {4 /**5 * 取最大值。6 * 7 * param data18 * 数据19 * param data2
10 * 数据2
11 * return
12 */
13 public native int getMaxData(int data1, int data2);
14
15 /**
16 * 向某人问好。
17 *
18 * param name
19 * 人名
20 * return
21 */
22 public native String getGreeting(String name);
23
24 /**
25 * 加载动态链接库
26 */
27 static {
28 System.loadLibrary(testJni);
29 }
30
31 /**
32 * 入口主函数。
33 *
34 * param args
35 */
36 public static void main(String[] args) {
37 MyJniNativeMethods jniTest new MyJniNativeMethods();
38 // 调用第一个本地方法得到两个数中的最大值
39 int maxData jniTest.getMaxData(100, 150);
40 System.out.println(maxData);
41
42 // 调用第二个本地方法想某人问好
43 String hello jniTest.getGreeting(王国成);
44 System.out.println(hello);
45 }
46 } 13行和22行包含了两个本地方法getMaxData和getGreeting注意本地方法只需有方法名不需要方法体。需要使用native关键字修饰。27-29行用于加载动态链接库。注意DLL文件不要后缀只要名称就可以了。 – 使用javac命令编译所编写的java类如果是用eclipse编写的代码不须使用此命令使用project菜单的clean选项编译一下就可以了。 – 使用javah命令编译成头文件 编译好class文件后打开CMD窗口转到bin目录运行转载于:https://www.cnblogs.com/gulvzhe/archive/2012/04/29/2476460.html