<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的版權均歸原作者所有,未經原作者允許,請勿作其它商業(yè)用途
    首先下載ICTCLAS Beta版本公開源代碼:點擊下載
    我使用的是Visual studio 2005開發(fā)環(huán)境,源碼使用VC6開發(fā)的,現在把這個工程轉移到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項目中去?下次寫吧。
    當你看到這句話的時候,你可以直接發(fā)郵件向我索要win32項目和eclipse項目 
    BlogJava后臺編輯器不好用,^_^
    posted on 2008-05-06 14:40 小碼哥 閱讀(1132) 評論(1)  編輯  收藏 所屬分類: JNI技術學習筆記Java語言學習信息檢索

    評論

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


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


    網站導航:
     
    主站蜘蛛池模板: 国产偷国产偷亚洲清高动态图 | 在线视频免费观看www动漫| 亚洲国产日韩一区高清在线| 伊人久久大香线蕉免费视频| 亚洲伊人久久大香线蕉综合图片| a一级爱做片免费| 国产精品亚洲一区二区三区在线| 另类免费视频一区二区在线观看| 久久精品国产亚洲夜色AV网站| 毛片在线播放免费观看| 亚洲一区二区三区高清| 6080午夜一级毛片免费看| 亚洲国产乱码最新视频| 国产乱子伦精品免费无码专区| 青青草97国产精品免费观看| 久久夜色精品国产亚洲| 91精品全国免费观看含羞草 | 亚洲人成网站免费播放| 成人免费一区二区无码视频| WWW国产亚洲精品久久麻豆| 亚洲第一区精品日韩在线播放| 无人在线直播免费观看| 亚洲中文字幕无码久久| 免费99热在线观看| 香蕉免费一级视频在线观看| 亚洲国产精品一区二区久久| 成人免费a级毛片无码网站入口 | 欧美色欧美亚洲另类二区| 免费女人18毛片a级毛片视频| 中文字幕一区二区免费| 亚洲av无码电影网| 亚洲成片观看四虎永久| 日韩精品无码专区免费播放| 久久久国产亚洲精品| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲国产精品乱码一区二区| 成人免费一级毛片在线播放视频 | 久久亚洲国产成人影院网站 | 亚洲高清视频免费| 日韩一级片免费观看| 亚洲最大成人网色|