• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:形態素解析ライブラリSenについて)

形態素解析ライブラリSenの導入でエラーが出る

このQ&Aのポイント
  • 自然言語処理の研究で形態素解析ライブラリSenを使っていますが、導入時にエラーが発生しています。
  • 環境設定やクラス名の変更などの作業は正常に行われており、コンパイルは成功していますが、実行時にjava.lang.NoClassDefFoundErrorが発生しています。
  • sen.batを実行すると正常に動作するため、原因はクラスパスの設定や依存ライブラリの問題ではないかと考えられます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.3

クラスパスを切り換えるんじゃなくて、追加という形にすればうまくいくかもしれません。 ava -Dsen.home=C:\Software\Sen -classpath %CLASSPATH%;C:\Java_temp StrNo

noname#213056
質問者

お礼

おかげさまで解決しました! ありがとうございます!!

その他の回答 (2)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

> クラス名を変更し、 Javaでは、これはご法度。

noname#213056
質問者

補足

回答ありがとうございます。 ご法度とはどうしてでしょうか? Javaファイルのファイル名とプログラム内部のクラス名が一致していればいいのではないのですか?

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

>Exception in thread "main" java.lang.NoClassDefFoundError: StrNo と言う事から、 クラスStrNoが見つからないとみたいです。 StrNoクラスはどこに配備されていますか? classpathの指定に誤りがあるかもしれません、確認して下さい。 もしも、StrNo.classが実行時のカレントディレクトリに配備されているならば、 classpathの指定の最初に。カレントディレクトリを示す「.」を追加すると 良いかもしれません。

noname#213056
質問者

補足

回答ありがとうございます。 回答していただいた方法で試したのですが、結果は変わりませんでした。 しかし、クラスパスの指定の仕方を少し変えると、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のクラスです。 考えられる原因は何でしょうか? 身近に相談できる人がいなくて、非常に困っています。。 よろしくお願いします。