Java中main方法必须写在public类中吗?
测试代码如下:
class Test {
public static void main(String[] args){
T t = new T();
t.m();
}
}
public class T {
public void m(){
System.out.println("类T");
}
}
输出结果出现以下错误:Exception in thread “main” java.lang.NoSuchMethodError:main
环境变量设置是正确的,classpath为:“.;C:\Program Files\Java\jdk1.6.0_10\lib”,所以环境变量设置是没有问题的!
我在google和百度上都没有搜索到很到位的解答。希望各位朋友们说说您们的看法!!!谢谢了!!!
[解决办法]
main 方法是程序的入口,JVM只会寻找main方法,找到后,才开始执行程序。而java中规定文件名要与public 类的类名保持一致,所以当你编译时,若按这样编译:javac Test.java 则会报错并提示你该程序中public 类不是该类;而按这样编译:javac T.java 则会提示LZ所提出的错误提示;因为JVM找不到程序入口,即main方法。最后当一个程序里只有一个类时,可以省略public,而当有多个时,必须有且只有一个public类,且文件名得与它同名。
至于为什么java中规定文件名必须跟public类的类名保持一致,这就涉及到JVM原理的问题了,LZ有兴趣可以看看相关资料。。。
[解决办法]
你这是一个class文件中啊,如果你想在这个文件中写一个主方法,要么你就写成public class 。。。要么就写成 class。。。但是其他类,绝对不能写成public class,你这样写的意思就是你的主方法在你的T类,程序从你的T类作为入口,你那里面没有主方法当然不行了啊
[解决办法]