我正在创建一个发送邮件的示例项目。当我尝试使用eclipse发送邮件时,它工作正常。但是一旦我创建了代码的.jar文件,就会创建jar文件,但是当我使用“ java -jar test.jar ”运行代码时,它会显示我
"**Exception in thread "Thread-1" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException**"
Complete Error Description:
**
Exception in thread "Thread-1" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.yourcabs.MailThread.run(MailThread.java:27)
我的jar文件结构是这样的 的 / META-INF 的 /组织 的 /javaee-api-6.0.jar 的 /mail.jar
我试过谷歌,它对我不起作用。此外,我尝试清理和重建项目也没有用。
任何人都可以帮助我。我错过了什么。
清单 - 版本:1.0 Rsrc-Class-Path:./ javaee-api-6.0.jar mysql-connector-java-5.0.8-bin.jar mail.jar 类路径:。 Rsrc-Main-Class:org.yourcabs.SMSMessenger Main-Class:org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
答案 0 :(得分:0)
也许问题是由mail.jar的不同版本引起的。确保您使用的是来自eclipse和命令行的相同jar。 Eclipse可以使用内置的mail.jar或实例服务器的mail.jar。
答案 1 :(得分:0)
我猜你的javax / mail / MessagingException有几个版本。 在mail.jar和javaee-api-6.0.jar中查找该类。
答案 2 :(得分:0)
你似乎在Linux上。请替换';' jar文件之间带':',如果是这种情况
什么是Rsrc-Class-Path?我认为Manifest看起来像:
清单 - 版本:1.0
Class-Path:./ javaee-api-6.0.jar mysql-connector-java-5.0.8-bin.jar mail.jar
Main-Class:org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
您需要根据需要调整类路径。