これはコードです:
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());
}
コードは次の例外を示し、示されているポイントで停止します。
スレッド「メイン」の例外Java.lang.NoClassDefFoundError:com.google.code.com.Sun.mail.imap.MessageCache.getMessage(MessageCache.Java:129)のjavax/activation/DataSource com.google.code.com .Sun.mail.imap.IMAPFolder.getMessage(IMAPFolder.Java:1394)at openReports.OpenReports.main
ビルドパスにactivation.jarを追加し、問題は解決しました。
だから私は2つのjars Java-mail-ima。** .jar、activation.jarを使用しました(さらなる参照用)。
Mavenを使用する場合は、手動で追加できます
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
Java 8(デフォルトではJava9)に切り替えることにより、Java/Scala混合プロジェクトでの同様のNoClassDefFoundError:javax/activation/DataSource問題を解決しました。
ディスカッション: https://github.com/highsource/jsonix-schema-compiler/issues/81