我正在为自己的SO编写一个小的自动响应程序,并已将电子邮件功能纳入其中,作为对我自己的a头/测试。我的源代码在netbeans中运行良好,但是当我尝试在Mac终端中运行.jar本身时,我得到了错误:无法初始化主类[类名] 引起原因:java.lang.NoClassDefFoundError:javax / mail / MessagingException 我对Java还是很陌生,因此对于该问题的任何模糊性或简单性,我深表歉意,但是如果有任何需要澄清的问题,请尽我所能
我试图通过双击并在终端中运行它来定期运行.jar,但都没有用,但是当我在netbeans中构建并运行源代码时,程序运行正常。我怀疑这可能与捕获异常行有关,但我真的不知道为什么。
try{
//sets variables to store custom subject and body data
System.out.print("Subject: ");
//input is name of scanner
String subject=input.next();
System.out.print("Body: ");
String body=input.next();
Message message = new MimeMessage(session);
//sets sender as my email
message.setFrom(new InternetAddress(myemail@gmail.com"));
//sets recipient as other email
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("recipientemail@msn.com"));
//sets subject and content as variables defined earlier
message.setSubject(subject);
message.setText(body);
//sends message
Transport.send(message);
System.out.println("Done");
//catches and throws a necessary messaging exception
} catch (MessagingException e) {
throw new RuntimeException(e);
}
答案 0 :(得分:0)
我认为从命令行运行jar文件的问题是您的类路径中没有java.mail,但是从IDE运行时,它将作为外部库添加到项目中。 https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html 来自@ user999