1

JavaMail からデモ msgsend を実行してみました。バージョン 1.4.5 の JavaMail をダウンロードし、JDK フォルダーに解凍しました。mail.jar を CLASSPATH に追加しました。エラーを返さずに msgsend.java をコンパイルしました。ただし、Java msgsend を実行しようとすると、"Could not find the main class: msgsend"エラーが発生します。

私はJavaの世界では完全に初心者であり、答えを見つけようとしてインターネットをブラウジングするのに何時間も費やしましたが、私の場合は役に立ちませんでした.

これがコンソールに表示されるものです。私は何を間違っていますか?

C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\demo>echo %CLASSPATH%
C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\mail.jar

C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\demo>javac -cp "%classpath%" ms
gsend.java

C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\demo>java msgsend
Exception in thread "main" java.lang.NoClassDefFoundError: msgsend
Caused by: java.lang.ClassNotFoundException: msgsend
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: msgsend.  Program will exit.

C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\demo>java -cp "%classpath%" msg
send
Exception in thread "main" java.lang.NoClassDefFoundError: msgsend
Caused by: java.lang.ClassNotFoundException: msgsend
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: msgsend.  Program will exit.

C:\Program Files\Java\jdk1.6.0_34\javamail-1.4.5\demo>
4

2 に答える 2

1

クラスは大文字と小文字を区別します。コンパイル済みの MsgSend がクラス パスにあることを確認し、コンパイル済みのクラスを適切なケースで呼び出します。

試すjava MsgSend

編集:

これがどのように機能するかです:

行っていたようにコンパイルします。 javac.exe -cp ..\mail.jar msgsend.java 次に、コンパイルされたクラスを実行するには、次 のようjava -cp ..\mail.jar;. msgsend にします。つまり、クラスパスに現在のフォルダーがありませんでした。

于 2012-09-24T09:07:25.130 に答える
0

msgsend.class が存在するディレクトリ (通常は現在のディレクトリ (".")) が含まれていません。JavaMail に含まれているREADME.txtの例を参照してください。

于 2012-09-24T16:08:10.263 に答える