<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Java中Native關鍵字的作用

    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 2008-5-19 Author zdw
      
    */

     
    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存放的路徑]



    posted on 2008-05-26 09:18 々上善若水々 閱讀(1059) 評論(1)  編輯  收藏 所屬分類: J2SE

    評論

    # re: Java中Native關鍵字的作用   回復  更多評論   

    非常感謝分享!您的文字讓我受益很多!
    祝工作順利.....!
    2008-09-21 20:40 | itvivi
    主站蜘蛛池模板: 久视频精品免费观看99| 韩国免费A级毛片久久| 国产大片线上免费观看| 亚洲成熟xxxxx电影| 日韩免费在线视频| 亚洲AV日韩AV永久无码免下载| 99re6在线精品免费观看| 亚洲人成精品久久久久| 久久99免费视频| 亚洲视频国产精品| 妻子5免费完整高清电视| 亚洲粉嫩美白在线| 国产又粗又长又硬免费视频| 含羞草国产亚洲精品岁国产精品| 免费国产真实迷j在线观看| 日韩精品无码永久免费网站| 亚洲最大激情中文字幕| 久久99精品视免费看| 亚洲乱人伦精品图片| 成人毛片免费视频| 一二三区免费视频| 亚洲第一精品福利| 成人一a毛片免费视频| 黄色a三级免费看| 亚洲国产综合无码一区| 国产91色综合久久免费| 欧美亚洲国产SUV| 亚洲欧洲精品无码AV| 国产精品久久免费| 免费人成网站永久| 亚洲国产精品热久久| 最近中文字幕mv免费高清电影| 美女露隐私全部免费直播| 亚洲中文字幕无码一区二区三区| 中国人xxxxx69免费视频| 亚洲AV无码精品国产成人| 亚洲日韩国产精品第一页一区| 亚州免费一级毛片| xxxxxx日本处大片免费看| 亚洲天堂一区二区三区四区| 免费吃奶摸下激烈视频|