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

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

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

    小碼哥

    誰謂河廣,一葦杭之

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      7 隨筆 :: 17 文章 :: 74 評論 :: 0 Trackbacks

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    訂閱Canvas

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    聲明:ICTCLAS以及我修改ICTCLAS JNI For Java的版權均歸原作者所有,未經原作者允許,請勿作其它商業用途
    首先下載ICTCLAS Beta版本公開源代碼:點擊下載
    我使用的是Visual studio 2005開發環境,源碼使用VC6開發的,現在把這個工程轉移到VS2005下。我使用的方法比較笨,基本上是屬于體力+暴力型的,不過自己覺得爽就可以了
    在VS2005里新建Win32項目FREEICTCLAS,在application Settings選項里選中Dll和Empty Project,然后新建以下過濾器(New Filter),并且將原項目的源碼及其目錄結構copy到現在的win32項目的目錄下(過濾器和項目目錄示意圖)
    示意圖(點擊前面+號展開)

    這樣這個win32工程基本就建完了。
    觀察ICTCLAS源代碼后編寫以下帶有native聲明的方法的java類,只實現了頭兩個方法,第三個暫未實現,與ICTCLAS接口基本保持一致
    代碼如下:
    FreeICTCLAS.java(點擊+展開)
    然后在命令行輸入Javac FreeICTCLAS.java編譯FreeICTCLAS.java
    生成FreeICTCLAS.class文件后,再使用javah FreeICTCLAS生成FreeICTCLAS.h,代碼如下:
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include 
    <jni.h>
    /* Header for class FreeICTCLAS */

    #ifndef _Included_FreeICTCLAS
    #define _Included_FreeICTCLAS
    #ifdef __cplusplus
    extern 
    "C" {
    #endif
    /*
     * Class:     FreeICTCLAS
     * Method:    FreeICTCLAS_Init
     * Signature: (II)Z
     
    */

    JNIEXPORT jboolean JNICALL Java_FreeICTCLAS_FreeICTCLAS_1Init
      (JNIEnv 
    *, jobject, jint, jint);

    /*
     * Class:     FreeICTCLAS
     * Method:    FreeICTCLAS_ParagraphProcess
     * Signature: (Ljava/lang/String;)Ljava/lang/String;
     
    */

    JNIEXPORT jstring JNICALL Java_FreeICTCLAS_FreeICTCLAS_1ParagraphProcess
      (JNIEnv 
    *, jobject, jstring);

    /*
     * Class:     FreeICTCLAS
     * Method:    FreeICTCLAS_FileProcess
     * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
     
    */

    JNIEXPORT jboolean JNICALL Java_FreeICTCLAS_FreeICTCLAS_1FileProcess
      (JNIEnv 
    *, jobject, jstring, jstring);

    #ifdef __cplusplus
    }

    #endif
    #endif
    將FreeICTCLAS.h拷貝到win32項目所在目錄中,再將其添加到項目中,接下來就是編寫FreeICTCLAS.cpp實現頭文件里方法
    主要代碼如下:
    #include "FreeICTCLAS.h"
    #include 
    "util.h"
    #include 
    "globeVar.h"
    #include 
    <string.h>
    #include 
    <stdlib.h>
    /*
    * Class:     FreeICTCLAS
    * Method:    FreeICTCLAS_Init
    * Signature: (II)Z
    */

    JNIEXPORT jboolean JNICALL Java_FreeICTCLAS_FreeICTCLAS_1Init
    (JNIEnv 
    *env, jobject obj, jint OperateType, jint OutputFormat)
    {
        m_ICTCLAS.m_nOperateType 
    = OperateType;
        m_ICTCLAS.m_nOutputFormat 
    = OutputFormat;
        
    return JNI_TRUE;
    }

    /*
    * Class:     FreeICTCLAS
    * Method:    FreeICTCLAS_ParagraphProcess
    * Signature: (Ljava/lang/String;)Ljava/lang/String;
    */

    JNIEXPORT jstring JNICALL Java_FreeICTCLAS_FreeICTCLAS_1ParagraphProcess
    (JNIEnv 
    *env, jobject obj, jstring sParagraph)
    {
        
    char *sResult,*sSource;
        sSource 
    = jstringTochar(env, sParagraph);
        
    if(m_ICTCLAS.m_nOutputFormat!=2)
            sResult
    =new char [(strlen(sSource)+13)*3];
        
    else
            sResult
    =new char [(strlen(sSource)+13)*50];
        
        
    if(!m_ICTCLAS.ParagraphProcessing(sSource,sResult))
            exit(
    1);
        
    else
            
    return chartoJstring(env,sResult);
    }

    /*
    * Class:     FreeICTCLAS
    * Method:    FreeICTCLAS_FileProcess
    * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
    */

    JNIEXPORT jboolean JNICALL Java_FreeICTCLAS_FreeICTCLAS_1FileProcess
    (JNIEnv 
    *env, jobject obj, jstring sSourceFilename, jstring sResultFilename)
    {
        
    return JNI_TRUE;
    }

    編譯項目,在release目錄中找到FreeICTCLAS.dll,將其拷貝到FreeICTCLAS.class所在的目錄中
    現在運行java FreeICTCLAS即可看到中文分詞的結果啦

    怎么把ICTCLAS JNI for Java添加到eclipse項目中去?下次寫吧。
    當你看到這句話的時候,你可以直接發郵件向我索要win32項目和eclipse項目 
    BlogJava后臺編輯器不好用,^_^
    posted on 2008-05-06 14:40 小碼哥 閱讀(1133) 評論(1)  編輯  收藏 所屬分類: JNI技術學習筆記Java語言學習信息檢索

    評論

    # re: 打造ICTCLAS JNI For Java 2013-07-11 10:23 sirlipeng
    可否將編譯好的FreeICTCLAS.dll發送給我一份呢?謝謝
    sirlipeng@gmail.com  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一区二区三区在线观看免费| 老司机午夜在线视频免费| 成人免费一区二区三区| 亚洲第一区在线观看| 免免费国产AAAAA片| 亚洲自偷自拍另类12p| 在线综合亚洲欧洲综合网站| 亚色九九九全国免费视频| 国产成人精品日本亚洲专| 久草免费在线观看视频| 国产精品亚洲片在线va| 在线视频免费观看www动漫| 亚洲无人区码一二三码区别图片| 久久不见久久见免费影院| 国产成A人亚洲精V品无码 | 亚洲色偷拍区另类无码专区| 亚洲精品电影在线| 人与禽交免费网站视频| 亚洲国产日韩综合久久精品| 国产成人精品免费视频软件| 男女猛烈xx00免费视频试看| 亚洲一区视频在线播放| 免费91麻豆精品国产自产在线观看 | 亚洲人成激情在线播放| 免费看www视频| 日韩大片免费观看视频播放| 亚洲成色在线综合网站| 91九色精品国产免费| 亚洲爆乳精品无码一区二区| 成人女人A级毛片免费软件| 亚洲AV无码专区国产乱码电影| 中文字幕免费高清视频| 亚洲精品视频久久| 在线免费观看中文字幕| www成人免费观看网站| 亚洲精品美女视频| 国产成人无码免费视频97| 在线视频网址免费播放| 亚洲成a人片在线观看精品| 久久久久国产成人精品亚洲午夜| 深夜免费在线视频|