I’ve run in to a strange error with the javamail 1.4.2 api and jdk/jre 1.6.0u16. I’ve placed the unzipped javamail-1.4.2 folder (along with the MySQL Connector-J 5.1.7 also needed) in both the jdk and jre folders as in the %classpath% below.
.;”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”;
But when I run my compiled jar with the command
C:\Program Files\Java\jre6\bin>java -cp %classpath% -jar "C:\Program Files\GameLabInventory\GameLabInventory_7.0.jar"
I get the following error message:
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
I can’t find anything wrong with my setup here, hopefully you guys can help me out. Thanks!
Here is the manifest file:
Manifest-Version: 1.0
Main-Class: gamelab.inventory.GameLabInventory
According to the documentation for the java tool:
You can specify a Class-Path attribute in yourJAR file that “specifies the relative URLs of the extensions or libraries that [your] application or extension needs.”