Я хожу по кругу.
У меня есть код, который работал нормально, с тех пор, как я его использовал, прошло от 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