为什么这个简单的小程序会报出空指针异常,很无语
import java.util.Date;
import java.util.Timer;import com.gw.mail.MailTest;public class test {

public void start(){
Date datetime = new Date();
Timer timer = null;
System.out.println(datetime);
timer.schedule(new MailTest(), datetime);
}


public static void main(String[] args) {
test t = new test();
t.start();
}}报出的异常为:Mon Apr 04 11:59:43 CST 2011
Exception in thread "main" java.lang.NullPointerException
at test.start(test.java:12)
at test.main(test.java:18)
at test.start(test.java:12)这里指的是timer.schedule(new MailTest(), datetime);MailTest类得代码为:package com.gw.mail;//这是执行任务的类,即每隔一段时间要做的事情在这里  import java.io.IOException;
import java.net.UnknownHostException;
import java.util.TimerTask;
public class MailTest extends TimerTask {  
   @Override  
   public void run() {
MailMessage message = new MailMessage();
message.setFrom("[email protected]"); // 发送者
message.setTo("[email protected]"); // 收件者
String server = "smtp.163.com"; // 发件者邮箱服务器
message.setSubject("Java Mail Test"); // title
message.setContent("Hello, this is GWVM system send mail test"); // content
message.setDataFrom("xX");  // 收到的邮件中发件人显示
message.setDataTo("xX");  // 收到的邮件中收件人显示
message.setUser("[email protected]");  // 发件箱的用户名
message.setPassword("XXX");  // 发件箱的密码 SMTPClient smtp;
try {
smtp = new SMTPClient(server, 25);
boolean flag;
flag = smtp.sendMail(message, server);
if (flag) {
System.out.println("邮件发送成功!");
} else {
System.out.println("邮件发送失败!");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}  
}