网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java入门-认识理解java中 native方法     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:72次  录入:管理员--2007-11-16  
 

java不是完美的,java的不足除了体现在运行速度上要比传统的c++慢许多之外,java无法直接访问到操作系统底层(如系统硬件等),为此java使用native方法来扩展java程序的功能。
  可以将native方法比作java程序同c程序的接口,其实现步骤:
  1、在java中声明native()方法,然后编译;
  2、用javah产生一个.h文件;
  3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了jdk带的jni.h文件);
  4、将第三步的.cpp文件编译成动态链接库文件;
  5、在java中用system.loadlibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在java中被访问了。 


java本地方法适用的情况 
1.为了使用底层的主机平台的某个特性,而这个特性不能通过java api访问

2.为了访问一个老的系统或者使用一个已有的库,而这个系统或这个库不是用java编写的

3.为了加快程序的性能,而将一段时间敏感的代码作为本地方法实现。


首先写好java文件
 /*
  * created on 2005-12-19 author shaoqi
  */
 package com.hode.hodeframework.modelupdate;

 public class checkfile
 {
     public native void displayhelloworld();

     static
     {
  system.loadlibrary("test");
     }

     public static void main(string[] args) {
        new checkfile().displayhelloworld(); 
     }
 }
然后根据写好的文件编译成class文件
然后在classes或bin之类的class根目录下执行javah -jni com.hode.hodeframework.modelupdate.checkfile,
 就会在根目录下得到一个com_hode_hodeframework_modelupdate_checkfile.h的文件
然后根据头文件的内容编写com_hode_hodeframework_modelupdate_checkfile.c文件
 #include "checkfile.h"
 #include 
 #include 

 jniexport void jnicall java_com_hode_hodeframework_modelupdate_checkfile_displayhelloworld(jnienv *env, jobject obj)
 {
     printf("hello world!\n");
     return;
 }
之后编译生成dll文件如“test.dll”,名称与system.loadlibrary("test")中的名称一致
 vc的编译方法:cl -i%java_home%\include -i%java_home%\include\win32 -ld com_hode_hodeframework_modelupdate_checkfile.c -fetest.dll
最后在运行时加参数-djava.library.path=[dll存放的路径]


 
 
上一篇: 【java语言深入】java 中线程概念描述    下一篇: j2ee基础:web开发需要注意的一些地方
  相关文档
在eclipse 3.1中体验j2se 5.0的新特性:第三部分:范型 11-17
介绍开发j2ee应用的几个要领 11-20
java软件开发学习笔记(三) 11-17
rails 开发与 java 编程的比较 11-17
解析java的多线程机制(1) 11-16
模式验证结构-jaxp 1.3 的特性 11-17
如何才算真正的掌握java语言 11-16
jdk1.4_01实现applet的数字签名认证 11-17
java入门--深入讨论java规则开发篇 01-10
小议如何在application中显示图象 11-17
为 web 服务构建 struts 应用程序 11-17
java应用程序本地编译为exe的几种方法 11-17
struts的静态数据验证方法 11-17
备忘录模式(memento pattern) 11-17
java通信和网络管理 11-17
设计表现层时需要考虑的几个问题 11-17
当前流行的j2ee web应用架构分析 11-17
java学习之容易忽视的小问题 11-17
eclipse配置sqlexplorer访问数据库1(图) 11-17
huihoo.org发布了jfoxmx的最新版本 1.2 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息