首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

【紧急】已经加下mail.jar包 但是总是说找不到com/sun/mail/util/LineInputStream

2012-09-10 
【紧急】已经加上mail.jar包 但是总是说找不到com/sun/mail/util/LineInputStream想用JavaMail应经加上jar包

【紧急】已经加上mail.jar包 但是总是说找不到com/sun/mail/util/LineInputStream
想用JavaMail应经加上jar包 但是总是说找不到com/sun/mail/util/

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

但是在WEB-INF下的lib中已经有mail.jar 我还加上了activation.jar

在referenced libraries 中也有mail.jar activation.jar 但还是报错。

点开referenced libraries 下的mail.jar 明明有 LineInputStream.class 



MyEclipse 还重新装过, 工作空间也换过。mail.jar 还下载了新的版本 

但是错误依旧



难道是代码的问题?
我记得这一段从网上copy的代码 还用过一次

package test;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
 
public class SendMail {
 
  //要发送Mail地址
  private String mailTo = null;
  //Mail发送的起始地址
  private String mailFrom = null;
  //SMTP主机地址
  private String smtpHost = null;
  //是否采用调试方式
  private boolean debug = false;
 
  private String messageBasePath = null;
  //Mail主题
  private String subject;
  //Mail内容
  private String msgContent;
 
  private Vector attachedFileList;
  private String mailAccount = null;
  private String mailPass = null;
  private String messageContentMimeType ="text/html; charset=gb2312";
 
  private String mailbccTo = null;
  private String mailccTo = null;
  /**
  * SendMailService 构造子注解。
  */
  public SendMail() {
  super();
   
  }
 
  private void fillMail(Session session,MimeMessage msg) throws IOException, MessagingException{
   
  String fileName = null;
  Multipart mPart = new MimeMultipart();
  if (mailFrom != null) {
  msg.setFrom(new InternetAddress(mailFrom));
  System.out.println("发送人Mail地址:"+mailFrom);
  } else {
  System.out.println("没有指定发送人邮件地址!");
  return;
  }
  if (mailTo != null) {
  InternetAddress[] address = InternetAddress.parse(mailTo);
  msg.setRecipients(Message.RecipientType.TO, address);
  System.out.println("收件人Mail地址:"+mailTo);
  } else {
  System.out.println("没有指定收件人邮件地址!");
  return;
  }
   
  if (mailccTo != null) {
  InternetAddress[] ccaddress = InternetAddress.parse(mailccTo);
  System.out.println("CCMail地址:"+mailccTo);
  msg.setRecipients(Message.RecipientType.CC, ccaddress);
  }
  if (mailbccTo != null) {
  InternetAddress[] bccaddress = InternetAddress.parse(mailbccTo);
  System.out.println("BCCMail地址:"+mailbccTo);
  msg.setRecipients(Message.RecipientType.BCC, bccaddress);
  }
  msg.setSubject(subject);
  InternetAddress[] replyAddress = { new InternetAddress(mailFrom)};
  msg.setReplyTo(replyAddress);
  // create and fill the first message part
  MimeBodyPart mBodyContent = new MimeBodyPart();
  if (msgContent != null)
  mBodyContent.setContent(msgContent, messageContentMimeType);
  else
  mBodyContent.setContent("", messageContentMimeType);
  mPart.addBodyPart(mBodyContent);
  // attach the file to the message


  if (attachedFileList != null) {
  for (Enumeration fileList = attachedFileList.elements(); fileList.hasMoreElements();) {
  fileName = (String) fileList.nextElement();
  MimeBodyPart mBodyPart = new MimeBodyPart();
   
  // attach the file to the message
  FileDataSource fds = new FileDataSource(messageBasePath + fileName);
  System.out.println("Mail发送的附件为:"+messageBasePath + fileName);
  mBodyPart.setDataHandler(new DataHandler(fds));
  mBodyPart.setFileName(fileName);
  mPart.addBodyPart(mBodyPart);
  }
  }
  msg.setContent(mPart);
  msg.setSentDate(new Date());
  }
  /**
  * 此处插入方法说明。
  */
  public void init()
  {
   
  }
  /**
  * 发送e_mail,返回类型为int
  * 当返回值为0时,说明邮件发送成功
  * 当返回值为3时,说明邮件发送失败
  */
  public int sendMail() throws IOException, MessagingException {
   
  int loopCount;
  Properties props = System.getProperties();
  props.put("mail.smtp.host", smtpHost);
  props.put("mail.smtp.auth", "true");
   
  MailAuthenticator auth = new MailAuthenticator();
   
  Session session = Session.getInstance(props, auth);
  session.setDebug(debug);
  MimeMessage msg = new MimeMessage(session);
  Transport trans = null;
  try {
   
  fillMail(session,msg);
  // send the message
  trans = session.getTransport("smtp");
  try {
  trans.connect(smtpHost, MailAuthenticator.MAIL_USER, MailAuthenticator.MAIL_PASSWORD);//, HUAWEI_MAIL_PASSWORD);
  } catch (AuthenticationFailedException e) {
  e.printStackTrace();
  System.out.println("连接邮件服务器错误:");
  return 3;
  } catch (MessagingException e) {
  System.out.println("连接邮件服务器错误:");
  return 3;
  }
   
  trans.send(msg);
  trans.close();
   
  } catch (MessagingException mex) {
  System.out.println("发送邮件失败:");
  mex.printStackTrace();
  Exception ex = null;
  if ((ex = mex.getNextException()) != null) {
  System.out.println(ex.toString());
  ex.printStackTrace();
  }
  return 3;
  } finally {
  try {
  if (trans != null && trans.isConnected())
  trans.close();
  } catch (Exception e) {
  System.out.println(e.toString());
  }
  }
  System.out.println("发送邮件成功!");
  return 0;
  }
  public void setAttachedFileList(java.util.Vector filelist)
  {
  attachedFileList = filelist;
  }
  public void setDebug(boolean debugFlag)
  {
  debug=debugFlag;
  }
  public void setMailAccount(String strAccount) {
  mailAccount = strAccount;
  }


  public void setMailbccTo(String bccto) {
  mailbccTo = bccto;
  }
  public void setMailccTo(String ccto) {
  mailccTo = ccto;
  }
  public void setMailFrom(String from)
  {
  mailFrom=from;
  }
  public void setMailPass(String strMailPass) {
  mailPass = strMailPass;
  }
  public void setMailTo(String to)
  {
  mailTo=to;
  }
  public void setMessageBasePath(String basePath)
  {
  messageBasePath=basePath;
  }
  public void setMessageContentMimeType(String mimeType)
  {
  messageContentMimeType = mimeType;
  }
  public void setMsgContent(String content)
  {
  msgContent=content;
  }
  public void setSMTPHost(String host)
  {
  smtpHost=host;
  }
  public void setSubject(String sub)
  {
  subject=sub;
  }
   
  public static void main(String[] argv) throws Exception
  {
  for(int i = 0;i<10;i++) {
  SendMail sm = new SendMail();
  sm.setSMTPHost("smtp.163.com");
  sm.setMailFrom("XXXXXX@163.com");
  sm.setMailTo("XXXXXXX@qq.com");
  sm.setMsgContent("内容");
  sm.setSubject("标题");
  sm.sendMail();
  }
  }
}


class MailAuthenticator extends Authenticator {
  // ******************************
  // 由于发送邮件的地方比较多,
  // 下面统一定义用户名,口令.
  // ******************************
  public static String MAIL_USER = "cXXXXX9@163.com";
  public static String MAIL_PASSWORD = "XXXXXX";

  public MailAuthenticator() {
  }

  protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication(MAIL_USER,
  MAIL_PASSWORD);
  }

}




[解决办法]
拷到lib下了,在工程里添加了吗?

如果添加了还不好那把它加到classpath里再试试
[解决办法]

探讨
工程里面已经有呢
在工程下的.classPath 文件中已经有
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/activation.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mail.jar"/>


[解决办法]
楼主可以先把jar包全部移除,然后再添加。

这样可以重新生成classpath并且clean一下项目重新编译。

热点排行