我在javamail1.4.2API和jdk/jre 1.6.0u16中遇到了一个奇怪的错误。我已经将解压缩的javamail-1.4.2文件夹(以及同样需要的MySQL连接器-J5.1.7)放在jdk和jre文件夹中,如下面的%classpath%所示。
.;"C:\Program Files\Java\jdk1.6.0-16\jre\lib\ext\mysql-connector-java-5.1.7-bin";"C:\Program Files\Java\jdk1.6.0-16\jre\lib\ext\javamail-1.4.2\mail.jar";"C:\Program Files\Java\jdk1.6.0_16\bin";"C:\Program Files\GameLabInventory\GameLabInventory-7.0.jar";““C:\ Files\Java\jre6\lib\ext\mysql-connector-java-5.1.7-bin";"C:\Program Files\Java\jre6\lib\ext\javamail-1.4.2\mail.jar";程序
但是,当我使用命令运行编译好的jar时
C:\Program Files\Java\jre6\bin>java -cp %classpath% -jar "C:\Program Files\GameLabInventory\GameLabInventory_7.0.jar"我收到以下错误消息:
gamelab.inventory.GameLabInventory.main(GameLabInventory.java:62)线程"main“java.lang.NoClassDefFoundError: javax/mail/MessagingException中的异常,原因是: java.lang.ClassNotFoundException: javax.mail.MessagingException at java.net.URLClassLoader$1.在java.lang的java.net.URLClassLoader.findClass(未知源)处运行(未知来源)java.net.URLClassLoader.findClass(未知源)。sun.misc.Launcher$AppClassLoader.loadClass(Unknown源的ClassLoader.loadClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在java.lang.ClassLoader.loadClassInternal(Unknown源).
我在这里找不到任何问题,希望你们能帮我解决问题。谢谢!
下面是清单文件:
Manifest-Version: 1.0
Main-Class: gamelab.inventory.GameLabInventory以下是jar -tvf (链接)
发布于 2009-09-04 19:23:59
根据java工具的文档
使用-jar选项时,JAR文件是所有用户类的源,其他用户类路径设置将被忽略。
可以在类路径属性中指定“指定应用程序或扩展所需的扩展或库的相对URL”的JAR文件。
发布于 2009-09-04 19:17:56
当使用-jar时,java重写类路径设置(-cp)。但是,在此配置中,可以在jar的清单文件中指定类路径jar。
发布于 2009-09-22 10:37:50
我也经历过一个类似的问题(与你的问题不一样,因为我的问题与春季有关),并且发现这个链接很有用:
http://forum.springsource.org/showthread.php?t=65840&page=3
JDK中的实现更改似乎是导致这种行为的原因。引用链接中的话:
“我使用Java 6 (1.6.0_07)在我的Mac开发盒上成功地再现了这个问题。然后,我使用Java 5在我的Mac上尝试了它,但是无法重现这个问题。关键的是,在Java5中,JVM将使用javax.activation API和1.1.1javax激活包中的实现,而在Java6上,它将使用JRE ( JRE的任何部分都优先于directory的lib目录中的任何内容)。然后我在Ubuntu上试用了这个应用程序,这次使用的是Java 6 1.6.0_10,我无法重现这个问题。“
和/但:-
“我刚刚遇到了同样的问题--”没有对象DCH用于MIME类型“,但在Ubuntu版本"1.6.0_13”上。所以我不知道你们是如何通过升级到1.6.0_11来解决这个问题的。我所做的就是把mailcab.default复制到我自己的包中,它成功了。这似乎是一个我还不完全理解的类加载问题。“
https://stackoverflow.com/questions/1381051
复制相似问题