1. <form id="hid2f"><legend id="hid2f"></legend></form><form id="hid2f"><legend id="hid2f"></legend></form>
              <sub id="hid2f"><big id="hid2f"><td id="hid2f"></td></big></sub>

                IT职业教育

                华中地区北大青鸟校区IT集训营

                027-87807717

                北大青鸟首页 > 热门IT技术教程 > Java技术教程 > > 怎么学好java之使用Native方法扩展Java程序的功能详解

                怎么学好java之使用Native方法扩展Java程序的功能详解

                时间:2012-05-25 10:45 来源:北大青鸟武汉宏鹏鲁广校区作者:027hpedu
                导读:怎么学好java是大家想了解的问题 。java语言北大青鸟武汉宏鹏鲁广校区ACCP课程中的基础语言,目前在软件开发中也是用得广的语言。那么,怎么学好java?我们就从使用Native方法扩展

                  怎么学好java是大家想了解的问题。java语言北大青鸟武汉宏鹏鲁广校区ACCP课程中的基础语言,目前在软件开发中也是用得较广的语言。那么,怎么学好java?我们就从使用Native方法扩展Java程序的功能详解中讲解吧!  

                  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之使用Native方法扩展Java程序的功能详解让大家能够正确认识java,通过学习java实现高质量的软件开发。北大青鸟武汉宏鹏鲁广校区作为一家专业的IT职业教育学校,学好技术能帮大家成为高质量的IT人才!

                相关文章

                告诉我们,你现在想了解什么?

                精彩专题——96%的同学看到这里都会点击下面的专题

                Copyright (c) 2006-2020 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.

                赛马会