質問: new test1(); 以前はエラーが出なかったのですが、バージョンアップ等でコンパイルし直した後に発生 するようになりました。色々調べてみましたが、答えの核心に繋がるものが見つかりませんでした。 noclassdeffounderror の javax/mail/address はどのようなときに発生するものなのでしょうか。
回答: エラーは、実行している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からは常に、 このパスが「見つかる」ようになります。 参考url:http://www.hellohiro.com/appli.htm