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