java javaMail NoClassDefFoundError в сообщении msg = новый MimeMessage (сеанс) - PullRequest
0 голосов
/ 06 марта 2020

Я хожу по кругу.

У меня есть код, который работал нормально, с тех пор, как я его использовал, прошло от 6 месяцев до года. Я попытался запустить его и теперь получаю: NoClassDefFoundError. Это связано со сборкой / отправкой электронной почты.

Я разобрал отладочную отрывочную часть и сузил все до строки:

Сообщение msg = new MimeMessage (сеанс)

Я использую JAVA 13 и Netbeans 11. Я не использую Maven. Я нашел много веток с решениями, но ни одна из них не работает для меня.

Я нашел и прочитал лучшие хиты StakeOverflow для этой самой проблемы, но я, должно быть, что-то не так с моим решением - не использую Maven. видя заданный classpath как путь, но после разных попыток все равно получаю ошибку. Некоторые темы кажутся слишком старыми для применения. Код работает и не соответствует типичному примеру кода для отправки электронных писем.

Я пробовал jvax.mail и javax.mail-1.62

https://javaee.github.io/javamail/ https://javaee.github.io/javamail/SMTP-Transport

Я преследовал установку путей к классам для нескольких потоков. У меня есть эти строки в переменной среды:

C: \ Users \ xyz \ Documents \ NetBeansProjects \ JAR-файлы \ JavaX-mail_com.sun C: \ Users \ xyz \ Documents \ NetBeansProjects \ JAR-файлы \ JAVA_Mail

Помощь?

О, что изменилось с тех пор, как оно заработало - обновлено до Windows 10, и для этого потребовалось обновить JAVA и Netbeans

Код: (этого достаточно)

import com.sun.mail.smtp.SMTPTransport;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public void debugEmail(){

    Properties properties = System.getProperties();
    properties.put("mail.smtp.auth","true");   
    properties.put("mail.smtp.starttls.enable","true");

    properties.put("mail.smtp.host","smtp.gmail.com");
    properties.put("mail.smtp.port","587");


        //Session session = Session.getInstance(properties, null);
        Session session = Session.getDefaultInstance(properties, null);
        Message msg = new MimeMessage(session);

В приведенном выше коде я создал отладочную подпрограмму, разбивающую / создающую простую подпрограмму, сужающую ошибку NoClassDefFound к сообщению msg = line

1 Ответ

0 голосов
/ 12 марта 2020

Код теперь работает - я преобразовал вещи в проект Maven java и добавил файл Maven xml с моими различными библиотеками

...