java.lang.NoSuchMethodError:main。线程“main”中的异常

时间:2011-01-18 11:51:16

标签: java

我正在尝试从Java邮寄。

我遇到了这个运行时异常:

  

java.lang.NoSuchMethodError:main。线程“main”中的异常

无法弄清问题是什么。请帮忙。

我正在使用以下代码:

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Mail{
 public static void Mail(String from, String to, String subject, String text)
 {

  Properties props = new Properties();
  props.put("mail.smtp.host", "smtp.gmail.com");
  props.put("mail.smtp.port", "465");

  Session mailSession = Session.getDefaultInstance(props, null);
  Message simpleMessage = new MimeMessage(mailSession);

  InternetAddress fromAddress = null;
  InternetAddress toAddress = null;
  try
  {
   fromAddress = new InternetAddress(from);
   toAddress = new InternetAddress(to);
  } catch (AddressException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  try
  {
   simpleMessage.setFrom(fromAddress);
   simpleMessage.setRecipient(RecipientType.TO, toAddress);
   simpleMessage.setSubject(subject);
   simpleMessage.setText(text);

   Transport.send(simpleMessage);   
  } catch (MessagingException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }  
 }

 public static void main(String[] args) 
 {

  String from = "prav.br@gmail.com";
  String to = "prav.br@gmail.com";
  String subject = "Test";
  String message = "A test message";

  Mail.Mail(from, to, subject, message);

 }
}

3 个答案:

答案 0 :(得分:2)

在代码中没有看到任何问题[至少它应该运行]。确保邮件api在classpath中进行编译。

建议: 您的代码不符合您应遵循的java标准命名约定。

另见

答案 1 :(得分:1)

从您的示例中删除了所有JavaMail代码后,它编译并运行没有任何问题。拥有与该类同名的静态方法绝对是非常规的,我会建议反对它,但它应该有效......

您尚未向我们提供任何详细信息或您的构建或执行环境。请这样做,并提供一个简短但完整的程序来说明问题 - 我建议你摆脱JavaMail的所有提示,因为这里不应该涉及。

答案 2 :(得分:-3)

您必须创建方法main(String[] args)

  1. 您的方法称为Main而不是main。
  2. 它接受多个参数而不是1 String []
  3. BTW java命名约定要求使用小写字母调用方法。