我遇到了javamail 1.4.2 api和jdk/jre 1.6.0u16的一個奇怪的錯誤。我已經在jdk和jre文件夾中放置瞭解壓縮的javamail-1.4.2文件夾(以及MySQL Connector-J 5.1.7),如下面的%classpath%所示。JavaMail ClassNotFound
.;"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:\Program 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";
但是,當我運行編譯罐子命令
C:\Program Files\Java\jre6\bin>java -cp %classpath% -jar "C:\Program Files\GameLabInventory\GameLabInventory_7.0.jar"
我收到以下錯誤信息:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException at gamelab.inventory.GameLabInventory.main(GameLabInventory.java:62) Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException 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) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 1 more
我不能在這裏找到什麼毛病我的設置,希望你們能幫助我。謝謝!
這裏是清單文件:
Manifest-Version: 1.0
Main-Class: gamelab.inventory.GameLabInventory
我會試試看,但我應該如何放置路徑?我是否將兩個jar文件添加到主程序的jar中並添加它們而沒有路徑?或者有沒有辦法用jar文件之外的相對路徑來做到這一點? – 2009-09-04 20:53:28
經過一番搗鼓之後,指定的類路徑最終成爲解決方案。 – 2010-09-28 03:38:49