mecab-java は MeCab を JAVA から使うためのバインディングで
SWIG を使って作られています。
で、その mecab-java を make して make test してみたのですが JVM ごと落ちてしまいます。
% make test env LD_LIBRARY_PATH=. java test 0.97 太郎は 名詞,一般,*,*,*,*,太郎は,*,* 二 名詞,数,*,*,*,*,二,ニ,* 郎 名詞,一般,*,*,*,*,郎,ロウ,* に 助詞,格助詞,一般,*,*,*,に,ニ,* この 連体詞,*,*,*,*,*,この,コノ,* 本 名詞,一般,*,*,*,*,本,ホン,* を 助詞,格助詞,一般,*,*,*,を,ヲ,* 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,* た 助動詞,*,*,*,特殊・タ,基本形,た,タ,* 。 記号,句点,*,*,*,*,。,。,* EOS BOS/EOS,*,*,*,*,*,*,*,* # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x000000394e47bf0b, pid=6397, tid=1086847296 # # JRE version: 6.0_16-b01 # Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode linux-amd64 ) # Problematic frame: # C [libc.so.6+0x7bf0b] memcpy+0x15b # # An error report file with more information is saved as: # /home/knaka/download/NL/mecab-java-0.97.ORG/hs_err_pid6397.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # make: *** [test] アボートしました
そんなときは、MeCab_wrap.cxx の 701行目の辺りに2行追加するとうまくいくかもしれません。
700 arg1 = *(mecab_node_t **)&jarg1; 701 result = (mecab_node_t *) ((arg1)->next); 702 char work[128] ; // 追加 703 sprintf(work,"result:%0x\n",result); // 追加 704 *(mecab_node_t **)&jresult = result; 705 return jresult; 706 }
環境
OS : Red Hat Enterprise Linux Client release 5 (Tikanga) java : jdk1.6.0_11 MeCab : mecab of 0.97 mecab-java : mecab-java-0.97
ではでは