我尝试从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>
答案 0 :(得分:1)
类是区分大小写的。确保在类路径中有已编译的MsgSend,并使用正确的大小写调用已编译的类。
尝试java MsgSend
<强>编辑:强>
这是如何运作的:
按照您的方式编译:
javac.exe -cp ..\mail.jar msgsend.java
然后运行编译的类做:
java -cp ..\mail.jar;. msgsend
换句话说:你错过了类路径中的当前文件夹。
答案 1 :(得分:0)
您没有包含msgsend.class所在的目录,通常是当前目录(“。”)。请参阅JavaMail附带的README.txt中的示例。