NoClassDefFoundError:javax / activation / DataSource

时间:2011-11-18 17:26:39

标签: java javamail

这是代码:

      Session session = Session.getDefaultInstance(props, null);
      Store store = session.getStore("imaps");
      store.connect("imap.gmail.com", "****@gmail.com", "****");
      System.out.println(store);
      Folder folder = store.getDefaultFolder();
      folder = folder.getFolder("INBOX");
      folder.open(Folder.READ_ONLY);

      System.out.println("Message Count: "+folder.getMessageCount());
      System.out.println("Unread Message Count: "+folder.getUnreadMessageCount());


           Message[] messages = folder.getMessages();  --> here the code stops.

      FetchProfile fp = new FetchProfile();
      fp.add(FetchProfile.Item.ENVELOPE);
      folder.fetch(messages, fp);

      for (int i = 0; i< messages.length; i++) 
      { 
          System.out.println("From:"+ messages[i].getFrom()); 
          }

代码给出以下摘要并在显示的位置停止。

  

线程“main”中的异常java.lang.NoClassDefFoundError:javax / activation / DataSource       在com.google.code.com.sun.mail.imap.MessageCache.getMessage(MessageCache.java:129)       在com.google.code.com.sun.mail.imap.IMAPFolder.getMessage(IMAPFolder.java:1394)       在openReports.OpenReports.main

3 个答案:

答案 0 :(得分:11)

如果您使用maven,可以手动添加

<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1</version>
</dependency>

答案 1 :(得分:4)

我添加了activation.jar来构建路径,问题解决了。

所以我使用了两个jars java-mail-ima。** .jar,activation.jar(供进一步参考)。

答案 2 :(得分:1)

我通过切换到Java 8(默认为Java9)解决了类似的NoClassDefFoundError:javax / activation / DataSource混合Java / Scala项目中的问题。

讨论:https://github.com/highsource/jsonix-schema-compiler/issues/81