2011-11-18 24 views
2

這是代碼:NoClassDefFoundError的:的javax /激活/數據源

 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()); 
      } 

的代碼給出了以下excption並且在所示的點停止。

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource at com.google.code.com.sun.mail.imap.MessageCache.getMessage(MessageCache.java:129) at com.google.code.com.sun.mail.imap.IMAPFolder.getMessage(IMAPFolder.java:1394) at openReports.OpenReports.main

+0

getMessageCount正在打印correclty以便連接。 – RaviKiran

回答

3

我加了activation.jar構建路徑,問題就解決了。

所以我用了兩個罐子java-mail-ima。** .jar,activation.jar(用於進一步的引用)。

+1

請注意,javax.activation包含在JDK 6中,所以如果您使用更新的JDK,則不需要激活jar。 – Martin

+0

是的..這有幫助。它減少了罐子的數量..非常感謝。 – RaviKiran

+0

@Martin如果我們沒有使用JDK版本更高的激活jar。仍然顯示沒有發現課程。 – Abhishek