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 回答