日期:2014-05-20  浏览次数:20841 次

Java新手上路,请教问题
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,所以应该不会是环境变量的设置问题吧!

------解决方案--------------------
保存应为含有main函数的类的名子,你这个程序应该保存为DateMain.java
这是JAVA规定。
------解决方案--------------------
main方法在class DateMain中,当然要编译一下class DateMain,然后java DateMain
------解决方案--------------------
你在类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

------解决方案--------------------
javac *.java
java DateMain
这样就可以
------解决方案--------------------
接个分
------解决方案--------------------
hopegood() ( ) 信誉:100 Blog 2007-3-5 13:41:00 得分: 0

说的是对的,因为在同一个文件中要运行程序,main方法必须放在有public访问修饰符的类中。要是两个类都没有public修饰符到是可以运行你的程序
------解决方案--------------------
编译后会生成两个class文件,一个是DateTest.class,另一个是DateMain.class,因为main方法在DateMain.class文件里,所以你在运行时应该运行DateMain.class文件,即java DateMain。
------解决方案--------------------
楼主:您好~~~
1、首先,你的文保存的名字是不合理的,应该是DateMain.java ;之所以你的DateTest.java 也编译通过了,可能只是一个巧合(可能原来的目录就有这个DateTest.java ) 2、另外,把class DateMain 改为public class DateMain即可 上面的朋友hopegood(说得很对,楼主可以直接拷贝他的代码,只不过,保存为DateMain.java;然后再javac DateMain.java成功编译通过后生成class文件,再java DateMain


------解决方案--------------------
fgjh