【发布时间】:2012-04-30 19:06:30
【问题描述】:
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailSender {
public static void main(String[] args) {
// TODO Auto-generated method stub
final String username = "xxx.xxxx@xxx.com";
final String password = "xxxo@xxxx";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "webmxzz.xxxxxxx.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxx.x@xxxx.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("xxxx.x@xxxx.com"));
message.setSubject("Testing Subject");
message.setText("Dear User,"
+ "\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
在编写通过网络发送电子邮件的代码时,我发现了这个代码。我使用的 jar 是:javaee-api-5.jar、activation.jar 和 mail.jar
我编译代码并在 eclipse 中运行它。它工作正常并将邮件发送到所需的邮件 ID,但是当我尝试通过导出 jar 文件来制作 jar 文件时出现问题,我收到警告: jar 已导出。完成时出现警告。
我得到的错误是:
Could not find the main class: (class). Program will exit.
可能的原因是什么?请帮助我找到解决方案。
【问题讨论】:
-
每当我编译代码时,除了 MailSender.class 之外,我总是在 bin 中得到 MailSender$1.class
-
/ 编译自 MailSender.java (version 1.6 : 50.0, super bit) class MailSender$1 extends javax.mail.Authenticator { // 方法描述符 #6 ()V // Stack: 1, Locals: 1 邮件发件人$1(); 0 aload_0 [this] 1 invokespecial javax.mail.Authenticator() [8] 4 return 行号:[pc: 0, line: 31] [pc: 4, line: 1] 局部变量表:[pc: 0, pc : 5] local: this index: 0 type: new MailSender(){} // 方法描述符#15 ()Ljavax/mail/PasswordAuthentication; // 堆栈:4,本地:1 受保护的 javax.mail.PasswordAuthentication
-
getPasswordAuthentication(); 0 new javax.mail.PasswordAuthentication [16] 3 dup 4 ldc
[18] 6 ldc [20] 8 invokespecial javax.mail.PasswordAuthentication(java. lang.String, java.lang.String) [22] 11 areturn 行号:[pc: 0, line: 33] 局部变量表:[pc: 0, pc: 12] local: this index: 0 type: new MailSender (){} 内部类:[内部类信息:#1 MailSender$1,外部类信息:#0 内部名称:#0,访问标志:0 默认] -
封装方法:#28 #30 MailSender.main([Ljava/lang/String;)
标签: java jakarta-ee