[mecab][java] MeCabをLeopard (Mac) にインストールしJavaバインディングつかってみる
移転しました。
参考URLそのまま
Mecabインストール
$ sudo port install mecab +utf8 mecab-ipadic-utf8 $ port info mecab mecab 0.96, textproc/mecab (Variants: universal, darwin_7, darwin_8, sjis, utf8, utf8only) http://mecab.sourceforge.net/
MeCab.jar作成
ちとはまった。
ここから、0.96をダウンロード。0.97だと失敗するので注意
tar zxvf mecab-java-0.96.tar.gz cd mecab-java-0.96 vi Makefile ----- JAVA_BASE=/System/Library/Frameworks/JavaVM.framework/Versions/1.5 JAVA_HOME=$(JAVA_BASE)/Home TARGET=MeCab JAVAC=$(JAVA_HOME)/bin/javac -encoding eucjp JAVA=$(JAVA_HOME)/bin/java JAR=$(JAVA_HOME)/bin/jar CXX=g++ INCLUDE=$(JAVA_BASE)/Headers PACKAGE=org/chasen/mecab LIBS=`mecab-config --libs` #INC=`mecab-config --cflags` -I$(INCLUDE) -I$(INCLUDE)/linux INC=`mecab-config --cflags` -I$(INCLUDE) all: $(CXX) -O3 -c -fPIC $(TARGET)_wrap.cxx $(INC) $(CXX) -dynamiclib $(TARGET)_wrap.o -o lib$(TARGET).dylib $(LIBS) $(JAVAC) $(PACKAGE)/*.java $(JAVAC) test.java $(JAR) cfv $(TARGET).jar $(PACKAGE)/*.class test: env DYLD_LIBRARY_PATH=. $(JAVA) test clean: rm -fr *.jar *.o *.dylib *.class $(PACKAGE)/*.class cleanall: rm -fr $(TARGET).java *.cxx ----- make make test
これでMeCab.jarができる。
Mavenへインスコ
$ jar cvf MeCab-sources.jar org/chasen/mecab/*.java $ mvn install:install-file -Dfile=MeCab.jar -DgroupId=org.chasen.mecab -DartifactId=mecab -Dversion=0.96 -Dpackaging=jar $ mvn install:install-file -Dfile=MeCab-sources.jar -DgroupId=org.chasen.mecab -DartifactId=mecab -Dversion=0.96 -Dpackaging=jar -Dclassifier=sources
プロジェクトに適用
pom.xmlに以下を追加
<dependency> <groupId>org.chasen.mecab</groupId> <artifactId>mecab</artifactId> <version>0.96</version> </dependency>
Eclipseで実行する場合
後は Eclipse の実行時に環境変数を与えるべく、実行クラスのプロパティの Run/Debug Settings の Environment に DYLD_LIBRARY_PATH を設定することと、JRE System Library をビルド時の環境と同様の Java5 に設定すれば、するりと動きました。
DYLD_LIBRARY_PATHには
/Users/shohu/src/mecab-java-0.96
のように、バインディングをインストールしたディレクトリを指定する。