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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發(fā)
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    Java中Native關(guān)鍵字的作用

    Java不是完美的,Java的不足除了體現(xiàn)在運行速度上要比傳統(tǒng)的C++慢許多之外,Java無法直接訪問到操作系統(tǒng)底層(如系統(tǒng)硬件等),為此Java使用native方法來擴展Java程序的功能。
      可以將native方法比作Java程序同C程序的接口,其實現(xiàn)步驟:
      1、在Java中聲明native()方法,然后編譯;
      2、用javah產(chǎn)生一個.h文件;
      3、寫一個.cpp文件實現(xiàn)native導(dǎo)出方法,其中需要包含第二步產(chǎn)生的.h文件(注意其中又包含了JDK帶的jni.h文件);
      4、將第三步的.cpp文件編譯成動態(tài)鏈接庫文件;
      5、在Java中用System.loadLibrary()方法加載第四步產(chǎn)生的動態(tài)鏈接庫文件,這個native()方法就可以在Java中被訪問了。


    JAVA本地方法適用的情況
    1.為了使用底層的主機平臺的某個特性,而這個特性不能通過JAVA API訪問

    2.為了訪問一個老的系統(tǒng)或者使用一個已有的庫,而這個系統(tǒng)或這個庫不是用JAVA編寫的

    3.為了加快程序的性能,而將一段時間敏感的代碼作為本地方法實現(xiàn)。


    首先寫好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(); 
         }

     }



     

    然后根據(jù)寫好的文件編譯成CLASS文件
    然后在classes或bin之類的class根目錄下執(zhí)行javah -jni com.hode.hodeframework.modelupdate.CheckFile,
     就會在根目錄下得到一個com_hode_hodeframework_modelupdate_CheckFile.h的文件
    然后根據(jù)頭文件的內(nèi)容編寫

    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
    最后在運行時加參數(shù)-Djava.library.path=[dll存放的路徑]



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

    評論

    # re: Java中Native關(guān)鍵字的作用   回復(fù)  更多評論   

    非常感謝分享!您的文字讓我受益很多!
    祝工作順利.....!
    2008-09-21 20:40 | itvivi
    主站蜘蛛池模板: 日本免费人成黄页网观看视频| 亚洲一区二区三区在线观看蜜桃 | 欧洲精品免费一区二区三区| 免费看无码特级毛片| 国产精品成人亚洲| 亚洲黄色激情视频| 婷婷精品国产亚洲AV麻豆不片| 亚洲成a人在线看天堂无码| A级毛片内射免费视频| 18pao国产成视频永久免费| 最近免费mv在线观看动漫| 男人免费视频一区二区在线观看| 亚洲久悠悠色悠在线播放| 久久综合亚洲色HEZYO社区| 亚洲国产精品无码久久久蜜芽| 亚洲国产一区明星换脸| 四虎影视永久免费观看| 在线免费视频一区二区| 一二三四免费观看在线视频中文版| 久久青草精品38国产免费| 成人性生交大片免费看中文| 国产一级a毛一级a看免费人娇| 添bbb免费观看高清视频| 亚洲乱人伦中文字幕无码| 亚洲七久久之综合七久久| 亚洲一级毛片视频| 亚洲午夜国产精品| 久久亚洲精品专区蓝色区| 亚洲永久在线观看| 亚洲色偷偷偷综合网| 亚洲另类无码专区首页| 亚洲欧美成aⅴ人在线观看| 亚洲国产精品无码第一区二区三区 | 亚洲综合婷婷久久| 老司机亚洲精品影院无码 | 91免费国产精品| 51视频精品全部免费最新| 久久九九兔免费精品6| 2021久久精品免费观看| 中国在线观看免费高清完整版 | 亚洲娇小性色xxxx|