質問: 初めて質問させていただきます。 私はeclipse上でjava言語を使って教師あり学習をさせるプログラムを書いています。 コードは全て書き終わりモデルファイルを読み込もうとしたところ "java.lang.NoClassDefFoundError: libsvm/svm"とエラーが出てしましました。 libsvm.jarをプロジェクト内のlibフォルダにコピーしそれをビルドパスの構成からJARの追加から参照ライブラリに追加して、それをコード内でimportしてコード内にはエラーがない状態です。libフォルダには他にもjarファイルを同じようにコピーし、ビルドパスに追加しています。 これを実行したところ "java.lang.NoClassDefFoundError: libsvm/svm"のエラーが出てしましました。これはlibsvmクラスが読み込まれていないようだと調べたのですが、libsvm.jarはビルドパスに追加されそれをコードでimportしてもエラーが出ないので原因が分からず困ってしまっています。 そこでエラーが発生するモデルファイルの読み込みを命令するコードの前に System.out.println("classpath=" + System.getProperty("java.class.path")); と書いて、設定されているクラスパスを見るコードを実行してみたら他のライブラリの名前に.jarがついたものの中にlibsvm.jarの文字がありませんでした。その出力にはlibsvmと全く同じやり方でビルドパスに追加し参照ライブラリーに追加されてる他の.jarファイルの名前がありました、それらは問題なくパスが通っているようです。 ビルドパスに追加できていてコードでもエラーなくimportできているのに実行したらクラスが見つからないとエラーが出てる状態です。libsvm.jar以外の.jarファイルは設定されたクラスパス一覧に出力されていてクラスを使えるようです。 どのようにしたらlibsvm.jarのクラスパスに追加し、クラスを使えるでしょうか?似たような質問はたくさん他のサイトなどでみるのですが、libsvmで教師あり学習させる場合とはシチュエーションが違い、参考にできませんでした。お詳しい方がいらしたらアドバイスよろしくお願い致します。 当方プログラミング初心者ですのでやわらかく説明していただけるととてもありがたいです。
回答: 実行->実行構成->標準ならメインクラス名のタブをクリック->クラスパス->ユーザーエントリー->外部jarの追加->libsvm.jarを追加したらいけるのではないでしょうか。なぜ一つだけ追加されなかったのかはすみません、わかりません。