2011年5月6日金曜日

OmegaTでstardict形式の辞書が読み込めないのはjdk1.6のバグです

twitterでつぶやいてたら@brandeluneさんが「ログ見た?」と質問してくれたおかげで問題が解決しました。そもそもOmegaT自体がJRE同梱版を利用することを推奨してたのを見落としていたのですが、同梱版を利用する以外の解決方法です。


どういう問題?

.dict, .idx, .ifoの3ファイルをdictionaryディレクトリに格納しても、OmegaTが辞書を読み込んでくれない。


判断基準は?

ターミナルでコマンドラインから起動するとログがターミナル上に流れます。OmegaTのプロジェクトを開いた際に以下のエラーが発生していればこの問題だと思われます。

Error load dictionary from '★OmegaTのプロジェクトファイルのpath★/dictionary/辞書ファイルの名称.ifo': invalid literal/length code

回避方法

jdk1.5もしくはjdk1.7で実行する。Java Preferencesで使用するjdkのバージョンを変更するかフルパスで指定して実行

/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java -jar /Applications/OmegaT.app/Contents/Resources/Java/OmegaT.jar

なぜ?

jdk1.6.0_24のバグです。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7028902を参照


環境

  • Mac OS X Snow Leopard
  • jdk1.6.0_24

参考

SnowLopardにjdk1.5をインストールする方法
http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard
ターミナルからOmegaTを実行する方法(pathは各自読み替えて)
java -jar /Applications/OmegaT.app/Contents/Resources/Java/OmegaT.jar

0 件のコメント:

コメントを投稿