public class DateTest
{
private int year,month,day;
public int getday()
{
return day;
}
public DateTest(int y,int m,int d)
{
year=y;
month=m;
day=d;
}

}
class DateMain
{
public static void main(String args[])
{
DateTest test=new DateTest(2007,3,1);
System.out.println("test day : "+test.getday());
}
}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
保存文件为DateTest.java
javac DateTest.java
没有错
java DateTest
抛出异常
Exception in thread "main" java.lang.NoSuchMethodError:main
何解?试过其他简单的程序,运行成功过,例如hello world,所以应该不会是环境变量的设置问题吧!

解决方案 »

  1.   

    保存应为含有main函数的类的名子,你这个程序应该保存为DateMain.java
    这是JAVA规定。
      

  2.   

    main方法在class DateMain中,当然要编译一下class DateMain,然后java  DateMain
      

  3.   

    你在类DateTest中没有方法main方法,所以会抱错,看你的代码意思,代码应该是这样
    class DateTest
    {
    private int year,month,day;
    public int getday()
    {
    return day;
    }
    public DateTest(int y,int m,int d)
    {
    year=y;
    month=m;
    day=d;
    }

    }
    public  class DateMain
    {
    public static void main(String args[])
    {
    DateTest test=new DateTest(2007,3,1);
    System.out.println("test day : "+test.getday());
    }
    }然后保存文件DateMain.java
    接了javac DateMain.java
    然后java DateMain
      

  4.   

    javac *.java
    java DateMain
    这样就可以
      

  5.   

    hopegood() ( ) 信誉:100    Blog  2007-3-5 13:41:00  得分: 0  
     
    说的是对的,因为在同一个文件中要运行程序,main方法必须放在有public访问修饰符的类中。要是两个类都没有public修饰符到是可以运行你的程序
      

  6.   

    编译后会生成两个class文件,一个是DateTest.class,另一个是DateMain.class,因为main方法在DateMain.class文件里,所以你在运行时应该运行DateMain.class文件,即java DateMain。
      

  7.   

    楼主:您好~~~   
    1、首先,你的文保存的名字是不合理的,应该是DateMain.java ;之所以你的DateTest.java 也编译通过了,可能只是一个巧合(可能原来的目录就有这个DateTest.java )    2、另外,把class DateMain 改为public  class DateMain即可                                                                                 上面的朋友hopegood(说得很对,楼主可以直接拷贝他的代码,只不过,保存为DateMain.java;然后再javac DateMain.java成功编译通过后生成class文件,再java DateMain