Javaと和布蕪 - RとLinuxと...

RとLinuxと...


Javaと和布蕪

Programming

Ubuntuで,久しぶりに和布蕪とjavaのバインディングをしようとしてハマってしまった.

mecab-java-0.96 は以下のようにコンパイルし MeCab?.jar を生成

mecab-java-0.96/Makefile は 6 行目を修正のこと

INCLUDE=/usr/lib/j2se/1.4/include

ソースはこれ. こういうエラーや

javac -encoding utf-8 -classpath  
Mecab/mecab-java-0.96/MeCab.jar  MyMecab.java 
MeCab.java:3: シンボルを見つけられません。
シンボル: クラス Tagger
場所    : MeCab の クラス
			private Tagger tagger;
	     		          ^
MeCab.java:8: シンボルを見つけられません。
シンボル: クラス Tagger
場所    : MeCab の クラス
                       tagger = new Tagger();
	                                  ^
MeCab.java:26: シンボルを見つけられません。
シンボル: クラス Node
場所    : MeCab の クラス
	...
エラー 3 個

こういうエラー

#java -classpath  Mecab/mecab-java-0.96/MeCab.jar:.  MyMecab
Cannot load the example native code.
Make sure your LD_LIBRARY_PATH contains '.'
java.lang.UnsatisfiedLinkError: no MeCab in java.library.path

を連発してしまった.もっとも,これはFedoraでも経験していた.

まずクラスパスをしっかり設定しておかなければいかん.

export LD_LIBRARY_PATH=Mecab/mecab-java-0.96:$LD_LIBRARY_PATH

で,ソースを書いたら,

javac -classpath progSource/Mecab/mecab-java-0.96/MeCab?.jar:. MyMecab?.java

実行は

java -classpath progSource/Mecab/mecab-java-0.96/MeCab?.jar:. MyMecab?

あるいはCLASPATHを明示的に指定して

$ export CLASSPATH=/MeCab/mecab-java-0.96/MeCab.jar:. 
$ java MyMecab
 
Link: Programming(3126d) 日録2008_1月(4070d) Prog_Mecab(4188d)
Last-modified: 2008-01-20 (日) 16:25:14 (4082d)