Javamail演示不起作用

时间:2012-09-24 08:48:21

标签: classpath javamail msgsend

我尝试从JavaMail运行演示msgsend。我已经下载了1.4M版的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 个答案:

答案 0 :(得分:1)

类是区分大小写的。确保在类路径中有已编译的MsgSend,并使用正确的大小写调用已编译的类。

尝试java MsgSend

<强>编辑:

这是如何运作的:

按照您的方式编译: javac.exe -cp ..\mail.jar msgsend.java 然后运行编译的类做: java -cp ..\mail.jar;. msgsend 换句话说:你错过了类路径中的当前文件夹。

答案 1 :(得分:0)

您没有包含msgsend.class所在的目录,通常是当前目录(“。”)。请参阅JavaMail附带的README.txt中的示例。