Javamail демо не работает

Я попытался запустить демо msgsend из JavaMail. Я скачал версию 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>

2 ответа

Классы чувствительны к регистру. Убедитесь, что у вас есть скомпилированный MsgSend в вашем пути к классам, и вызовите скомпилированный класс с правильным регистром.

Пытаться java MsgSend

Отредактировано:

Вот как это будет работать:

Скомпилируйте как вы делали:javac.exe -cp ..\mail.jar msgsend.java А затем для запуска скомпилированного класса выполните:java -cp ..\mail.jar;. msgsend Другими словами: вы пропустили текущую папку в вашем classpath.

Вы не включили каталог, в котором существует msgsend.class, обычно это текущий каталог ("."). Смотрите примеры в файле README.txt, включенном в JavaMail.

Другие вопросы по тегам