使用JNI,vs2010 生成dll, JSP中调用dll

JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。

主要运行过程:创建Java文件---->使用 javah 编译生成相应的头文件供vs2010 中使用--->使用vs2010 编译生成dll文件

我的运行环境:

a、Myeclipse 10  中创建了Web项目TestDll    路径: D:\Program Files\MyEclipse10\MyEclipse 10\DLLworkspace\TestDll

b、VS2010  中创建了项目Util,路径: C:\Users\Admin\Documents\Visual Studio 2010\Projects\DLLTest\Util

c、tomcat目录:D:\apache-tomcat-6.0.29

d:jdk环境:C:\Program Files (x86)\Java\jdk1.7.0_45

1、开始 编写java文件

package com.jni;


public class Util {
	public native static int add(int x,int y);
	static {
		   System.loadLibrary( "Util" );//是需要加载的dll文件名称,在vs2010创建项目时名称需要定义为Util
	}
}
   2、生成对应的头文件:打开一个dos窗口,进入到存放class文件的目录:

输入命令: javah -classpath . -jni com.jni.Util   (class路径表示当前位置,类需要带上包的信息)  这样在classes目录下会生成com_jni_Util.h文件


3、vs2010 中生成dll文件

创建项目; Win32 控制台应用程序--->输入名称Util--->应用程序类型为Dll,附加选项中选中空项目然后点击完成。

从jdk目录下找到文件jni.h(在include文件中)和jni_md.h(在include/win32目录下)文件

在项目Util中创建文件夹include ,然后将文件 jni.h,           jni_md.h      和 com_jni_Util.h文件拷贝到该文件夹下

创建C++文件Util.cpp

//Util.c
#include "com_jni_Util.h"
#include "jni.h"

JNIEXPORT jint JNICALL Java_com_jni_Util_add
(JNIEnv *env, jclass jc, jint x, jint y)
{
    return x+y;
}

若Util.cpp中无法引用到头文件,需要设置.选中项目---->右击  属性--->C/C++  附加包含目录中编辑添加  .\include



结构如图所示:


然后右击项目,选择生成,会在输出目录(C:\Users\Admin\Documents\Visual Studio 2010\Projects\DLLTest\Debug)下生成Util.dll等文件

4、编写jsp文件   index.jsp

<%@ page import="com.jni.Util" %>

<html> <head></head>

<body> <h3>5+7=<%=Util.add( 5, 7 )%></h3> </body> </html>

5、把Util.dll文件复制到D:\apache-tomcat-6.0.29\bin目录下

6、部署Web项目

7、在ie中输入

http://localhost:8080/TestDll/index.jsp,若界面上能看到5+7=12就表示成功了

参考文章:http://blog.csdn.net/bintime/article/details/2586505

项目源代码下载:http://download.csdn.net/detail/luoww1/8224705




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值