[英]Java Jar file not sending email when ran from a batch file?
所有,
以下代碼可以正常運行,並且在eclipse中運行時發送電子郵件。 但是,當我從eclipse導出為jar文件並從批處理文件運行以下命令時,它給了我錯誤。 注意:從批處理文件運行時,jar文件中還有其他文件可以正常工作。
java -cp C:\Users\Administrator\Email.jar LotusNotes.SendEmail
例外:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
at LotusNotes.RunBackUpSourceCopy.main(RunBackUpSourceCopy.java:49)
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
SendEmail類:
public class SendEmail {
public String to ;
public String from;
public String host;
public SendEmail(){
to = "xyz@gmail.com";
from = "localhost";
host = "localhost";}
public void send_production_email(String reportDate){
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Subject Line!");
message.setText("Test email!");
Transport.send(message);
System.out.println("Sent message successfully....");
}
catch (MessagingException mex) {
mex.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("Preparing to Send Email ...");
SendEmail email = new SendEmail();
email.send_production_email("test production");
}
}
看起來您需要將javax郵件jar添加到類路徑。
編輯
java -cp "C:\Users\Administrator\Email.jar";"C:\Users\Administrator\ExternalJarFiles\mail.jar"; LotusNotes.SendEmail
根據下面的評論...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.