- ベストアンサー
NoClassDefFoundError: javax/mail/Address の原因と解決法
- Javaプログラムの実行中に、NoClassDefFoundError: javax/mail/Address エラーが発生しています。
- エラーの原因や解決策についての情報が見つからず、困っています。
- バージョンアップやコンパイルのし直し後にエラーが発生しており、同じ経験のある方からの教えを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
エラーは、実行しているJavaVMからjavax.mail.Addressクラスが「見つからない」ので、 それが「見つかる」ようにすればいいわけです。 そのために「クラスパスを通す」必要があるわけですが、やり方として、 ・実行時にパスを通す ・環境変数に指定する という2つの方法があります。 JavaMailの場合、mail.jarとactivation.jarにクラスパスを通す必要があります。 例えば、これらのファイルがC:\javaフォルダに入っている場合 javac -classpath .;C:\java\mail.jar;C:\java\activation.jar program.test1 とすると、test1のプログラムを実行する時に2つのjarファイルにクラスパスが通り、 クラスが見つかるようになります。 ただ、いちいちこれをタイプして実行するのは面倒なので、一般には環境変数に追加します。 WindowsXPの場合、システムのプロパティの環境変数から、 CLASSPATHを選び(なければ新規作成またはPATHを選んでもいい) 値に、mail.jarとactivation.jarを(フルパスで)追加すればJavaVMからは常に、 このパスが「見つかる」ようになります。
その他の回答 (1)
- momozange
- ベストアンサー率67% (21/31)
実行プログラムがjavax.mail.Addressクラスをロードできないために発生しています。 JavaMailにクラスパスが通っていないためでしょう。 > 以前はエラーが出なかったのですが、バージョンアップ等... 何をどのようにバージョンアップしたのでしょうか。
お礼
>>momozange様 早速の返信ありがとうございます。 バージョンアップはこのプログラムではありませんでした。 勘違いで申し訳ありません。無視してください。 重ねての質問となり恐縮ですが、この実行プログラムにJavaMailのクラス パスを通すというのは具体的にどのようにすれば良いのでしょうか? importで javax.mail.Address を記載するのでしょうか。それとも 環境変数等の設定が必要なのでしょうか。
お礼
お礼が遅くなり、申し訳ありません。 お陰さまで、無事解決いたしました。システム環境変数内で activation.jar と mail.jar を 指定していましたが、途中のフォルダパスが間違っているのが原因でした。 なんともお恥ずかしい。この度は適格なアドバイスをいただき、 本当にありがとうございました。