1

我正在创建一个示例项目来发送邮件。当我尝试使用 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 /org /javaee-api-6.0.jar /mail.jar

我尝试了谷歌,但它对我不起作用。我也尝试清理和重建项目也没有奏效。

谁可以帮我这个事。我是不是错过了什么。

Manifest-Version: 1.0 Rsrc-Class-Path: ./javaee-api-6.0.jar mysql-connector-java-5.0.8-bin.jar mail.jar Class-Path: . Rsrc-Main-Class:org.yourcabs.SMSMessenger Main-Class:org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

4

3 回答 3

0

也许问题是由不同版本的 mail.jar 引起的。确保您在 eclipse 和命令行中使用相同的 jar。Eclipse 可以使用内置的 mail.jar 或实例服务器的 mail.jar。

于 2013-06-10T08:14:08.110 回答
0

我猜你的 javax/mail/MessagingException 有几个版本。在您的 mail.jar 和 javaee-api-6.0.jar 中查找该类。

于 2013-06-10T08:51:25.407 回答
0

你似乎在Linux上。请替换';' 如果是这种情况,则在带有 ':' 的 jar 文件之间

什么是 Rsrc-Class-Path?我认为清单应该是这样的:

清单版本:1.0

类路径:./javaee-api-6.0.jar mysql-connector-java-5.0.8-bin.jar mail.jar

主类:org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

您需要根据需要调整类路径。

于 2013-06-10T09:03:57.443 回答