- ベストアンサー
形態素解析ライブラリSenの導入でエラーが出る
- 自然言語処理の研究で形態素解析ライブラリSenを使っていますが、導入時にエラーが発生しています。
- 環境設定やクラス名の変更などの作業は正常に行われており、コンパイルは成功していますが、実行時にjava.lang.NoClassDefFoundErrorが発生しています。
- sen.batを実行すると正常に動作するため、原因はクラスパスの設定や依存ライブラリの問題ではないかと考えられます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クラスパスを切り換えるんじゃなくて、追加という形にすればうまくいくかもしれません。 ava -Dsen.home=C:\Software\Sen -classpath %CLASSPATH%;C:\Java_temp StrNo
その他の回答 (2)
- _ranco_
- ベストアンサー率58% (126/214)
> クラス名を変更し、 Javaでは、これはご法度。
補足
回答ありがとうございます。 ご法度とはどうしてでしょうか? Javaファイルのファイル名とプログラム内部のクラス名が一致していればいいのではないのですか?
- Yanch
- ベストアンサー率50% (114/225)
>Exception in thread "main" java.lang.NoClassDefFoundError: StrNo と言う事から、 クラスStrNoが見つからないとみたいです。 StrNoクラスはどこに配備されていますか? classpathの指定に誤りがあるかもしれません、確認して下さい。 もしも、StrNo.classが実行時のカレントディレクトリに配備されているならば、 classpathの指定の最初に。カレントディレクトリを示す「.」を追加すると 良いかもしれません。
補足
回答ありがとうございます。 回答していただいた方法で試したのですが、結果は変わりませんでした。 しかし、クラスパスの指定の仕方を少し変えると、StrNoクラスは見つかるようになりました。 質問投稿時では java -Dsen.home=%SEN_HOME% -classpath %CLASSPATH% StrNo で実行していました。修正し、 java -Dsen.home=C:\Software\Sen -classpath C:\Java_temp StrNo で実行すると、 Exception in thread "main" java.lang.NoClassDefFoundError: net/java/sen/StringTagger プログラムが途中まで実行されてこのエラーを吐き出します。 net/java/sen/StringTaggerはプログラム内でインポートしているSenのクラスです。 考えられる原因は何でしょうか? 身近に相談できる人がいなくて、非常に困っています。。 よろしくお願いします。
お礼
おかげさまで解決しました! ありがとうございます!!