jar文件中的javax / mail / MessagingException,但在eclipse中使用相同的代码

时间:2013-06-10 07:55:27

标签: java eclipse jar executable-jar

我正在创建一个发送邮件的示例项目。当我尝试使用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

3 个答案:

答案 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

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