Lorsque je créais un processus pour envoyer du courrier à l'aide de JavaMail dans un lot Java, une exception ClassNotFoundException s'est produite, je vais donc résumer la cause et la solution à ce moment-là.
La cause était simple et j'ai fait une erreur en chargeant la bibliothèque. À l'origine, j'ai écrit ce qui suit dans les dépendances de Gradle pour charger la bibliothèque.
compile group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
Maintenant, les seules bibliothèques en baisse sont: javax.mail-api-1.6.2.jar
Les seules classes incluses dans cette bibliothèque sont celles liées à "javax.mail ~", et je me fâche car je n'ai pas assez de classes lors de l'envoi de mail ... (Bien que rien ne soit écrit dans la dépendance du référentiel maven)
Modifiez la bibliothèque JavaMail à charger comme suit.
compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'
Les deux bibliothèques suivantes seront supprimées. javax.mail-1.6.2.jar activation-1.1.jar
Les classes incluses dans cette bibliothèque "javax.mail" sont des classes liées à "javax.mail ~" et des classes liées à "com.sun.mail ~". J'ai nettoyé les erreurs liées à ClassNotFoundException à l'aide de cette bibliothèque.
Les bibliothèques liées au courrier Java sont assez confuses par la structure de groupe similaire. C'est un nom de package qui semble bien fonctionner, et c'est très difficile à comprendre ...