【发布时间】:2020-03-06 15:46:36
【问题描述】:
我来来回回。
我的代码运行良好,自从我使用它以来已经有 6 个月到一年的时间了。我试图运行它,现在得到: NoClassDefFoundError 。这与构建/发送电子邮件有关。
我已经分解了一个调试片段并将范围缩小到一行:
消息消息 = 新的 MimeMessage(会话)
我使用的是 JAVA 13 和 Netbeans 11。我没有使用 Maven。我找到了许多解决方案的线程,但没有一个对我有用。
我已经找到并阅读了针对这个问题的顶级 StakeOverflow 命中,但我的解决方案一定有问题 - 没有使用 Maven,我将设置的类路径视为路径,但经过不同尝试后仍然出现错误。有些线程似乎太旧而无法应用。该代码已经运行,并且与发送电子邮件的典型示例代码不同。
我试过 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 Files\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 错误缩小到 Message msg = line
【问题讨论】:
-
您为什么决定不使用 Maven?这正是管理依赖关系的工具。
-
您能否发布完整的错误。您没有发布未找到的课程的名称
-
哦,自从它工作以来发生了什么变化 - 升级到 Windows 10,这需要我升级 JAVA 和 Netbeans ......我从未使用过 Maven,因为这个问题我只是在寻找它。 . 我需要让这段代码重新运行(快速),
-
另外,检查 Java 8。最近的 JDK 删除了一些模块
-
您究竟是如何设置类路径以及您是如何调用程序的?
标签: java jakarta-mail message