我找到的老是报错 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream at com.together.sys.util.sendMail.sendMail(sendMail.java:200) at com.together.sys.util.sendMail.main(sendMail.java:263)
package com.together.sys.util; import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class sendMail { public sendMail() { } public void send(){ try { Properties props = new Properties(); Session sendMailSession; Store store; Transport transport; props.put("mail.smtp.auth","true"); props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名。 props.put("mail.smtp.user","[email protected]"); //发送方邮件地址。 props.put("mail.smtp.password","shanjaysdl"); //邮件密码。 PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。 PasswordAuthentication pop = popA.performCheck("123","123"); //填写用户名及密码 sendMailSession = Session.getInstance(props, popA); Message newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress("[email protected]")); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); //接收方邮件地址 newMessage.setSubject("邮件主题"); newMessage.setSentDate(new Date()); String mailContent; mailContent="你好!\n\n"; mailContent+="\t邮件正文\n\n"; mailContent+=new Date().toLocaleString(); newMessage.setText(mailContent); //邮件正文 transport = sendMailSession.getTransport("smtp"); transport.sendMessage(newMessage,newMessage.getAllRecipients()); } catch (MessagingException ex) { ex.printStackTrace(); } } public static void main(String[] args) { sendMail sml = new sendMail(); sml.send(); } public class PopupAuthenticator extends Authenticator{ String username=null; String password=null; public PopupAuthenticator(){} public PasswordAuthentication performCheck(String user,String pass){ username = user; password = pass; return getPasswordAuthentication(); } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } } }我是这样写的 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream at com.together.sys.util.sendMail.send(sendMail.java:35) at com.together.sys.util.sendMail.main(sendMail.java:56) 他老是报出这个异常怎么解决啊。
谢谢大家。我把mail.jar和activation.jar都加入到lib里面了。 可以又报了一个错误。Exception in thread "main" java.lang.NoSuchMethodError: com.sun.activation.registries.MailcapFile: method getMailcapList(Ljava/lang/String;)Ljava/util/Hashtable; not found at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:471) at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567) at javax.activation.DataHandler.writeTo(DataHandler.java:294) at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230) at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065) at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923) at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904) at javax.mail.Transport.send(Transport.java:79) at com.together.sys.util.SendMail.send(SendMail.java:47) at com.together.sys.util.SendMail.main(SendMail.java:57) 高手帮忙看下。
我看了一下没有重复的啊。你的.jar文件用的都上什么版本的啊。 我用mail.jar 1.4.1就会报 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream at com.together.sys.util.SendMail.send(SendMail.java:25) at com.together.sys.util.SendMail.main(SendMail.java:42) 异常。用1.3.1就不会报这个异常。jaf-1.1.1 项目里面没有重复的了。我重新创建个项目试试下。
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
at com.together.sys.util.sendMail.sendMail(sendMail.java:200)
at com.together.sys.util.sendMail.main(sendMail.java:263)
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class sendMail
{ public sendMail()
{
}
public void send(){
try
{
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名。
props.put("mail.smtp.user","[email protected]"); //发送方邮件地址。
props.put("mail.smtp.password","shanjaysdl"); //邮件密码。
PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
PasswordAuthentication pop = popA.performCheck("123","123"); //填写用户名及密码
sendMailSession = Session.getInstance(props, popA);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress("[email protected]"));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); //接收方邮件地址
newMessage.setSubject("邮件主题");
newMessage.setSentDate(new Date());
String mailContent;
mailContent="你好!\n\n";
mailContent+="\t邮件正文\n\n";
mailContent+=new Date().toLocaleString();
newMessage.setText(mailContent); //邮件正文
transport = sendMailSession.getTransport("smtp");
transport.sendMessage(newMessage,newMessage.getAllRecipients());
}
catch (MessagingException ex)
{
ex.printStackTrace();
}
}
public static void main(String[] args)
{
sendMail sml = new sendMail();
sml.send();
} public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(){}
public PasswordAuthentication performCheck(String user,String pass){
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
} }
}我是这样写的
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
at com.together.sys.util.sendMail.send(sendMail.java:35)
at com.together.sys.util.sendMail.main(sendMail.java:56)
他老是报出这个异常怎么解决啊。
我加入了啊。还是报刚才的错误。
报错信息表明,其他的jar包含了com.sun.mail.util.SharedByteArrayInputStream,以此无法匹配
找到这个jar,删除就ok了,例如,weblogic自带的weblogic.jar就包含了这个类
可以又报了一个错误。Exception in thread "main" java.lang.NoSuchMethodError: com.sun.activation.registries.MailcapFile: method getMailcapList(Ljava/lang/String;)Ljava/util/Hashtable; not found
at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:471)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567)
at javax.activation.DataHandler.writeTo(DataHandler.java:294)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
at javax.mail.Transport.send(Transport.java:79)
at com.together.sys.util.SendMail.send(SendMail.java:47)
at com.together.sys.util.SendMail.main(SendMail.java:57)
高手帮忙看下。
54.9 KB (56,290 字节)
jaf-1_1_1.zip
javamail-1_3_1-upd.zip
package com.together.sys.util;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail
{ public SendMail()
{
}
public void send(){
try
{
Properties props = System.getProperties();
Session sendMailSession;
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名。
props.put("mail.smtp.user","[email protected]"); //发送方邮件地址。
props.put("mail.smtp.password","shanjaysdl"); //邮件密码。
PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
PasswordAuthentication pop = popA.performCheck("tramplesoul","shanjaysdl"); //填写用户名及密码
sendMailSession = Session.getInstance(props, popA);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress("[email protected]"));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); //接收方邮件地址
newMessage.setSubject("邮件主题");
newMessage.setSentDate(new Date());
String mailContent;
newMessage.setText("哈哈。我是正文"); //邮件正文
Transport.send(newMessage);
}
catch (MessagingException ex)
{
ex.printStackTrace();
}
}
public static void main(String[] args)
{
SendMail sml = new SendMail();
sml.send();
} public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(){}
public PasswordAuthentication performCheck(String user,String pass){
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
} }
}
但是报异常。
Exception in thread "main" java.lang.NoSuchMethodError: com.sun.activation.registries.MailcapFile: method getMailcapList(Ljava/lang/String;)Ljava/util/Hashtable; not found
at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:471)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567)
at javax.activation.DataHandler.writeTo(DataHandler.java:294)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
at javax.mail.Transport.send(Transport.java:79)
at com.together.sys.util.SendMail.send(SendMail.java:32)
at com.together.sys.util.SendMail.main(SendMail.java:42)
两个包我都加过了。难道是我程序写的有问题。还是什么原因。
高手帮看看撒。
[email protected]
我用mail.jar 1.4.1就会报
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
at com.together.sys.util.SendMail.send(SendMail.java:25)
at com.together.sys.util.SendMail.main(SendMail.java:42)
异常。用1.3.1就不会报这个异常。jaf-1.1.1
项目里面没有重复的了。我重新创建个项目试试下。