今天在一个文件suibian.java里面写了两个classclass Person{}
class Animal{}把main 函数放在Person里面了,开发环境为Eclipse。每次运行的时候都会报错:
java.lang.NoSuchMethodError: main
Exception in thread "main" 什么原因?

解决方案 »

  1.   

    没找到main函数
    文件suibian.java改成Person.java
      

  2.   

    public static void main(){
      

  3.   

    main函数是程序入口,一般都是写成2楼得形式,但是就你的错误来看,确实是类名和java文件名不一样,所以再改成1楼得形式即可。
      

  4.   

    http://topic.csdn.net/u/20100327/21/5f29d2a4-319d-4a3f-b2f6-37d91eda8fad.htmldos下是可以的,在IDE下不可以
      

  5.   

    class Test {
    public static void main(String args[]) {
    System.out.println("hellos");
    Test1 test = new Test1();
    String ss[] = { "12", "12" };
    test.main(ss);
    }
    }class Test1{
    public static void main(String args[]) {
    System.out.println("hello2");
    }
    }IDE下可以
    事实是可以的、、
      

  6.   


    恩,改成一致没有问题。我想知道的是:是不是main函数必须写在一个跟文件名一样的class里面才行?
      

  7.   

    http://topic.csdn.net/t/20060106/10/4501172.html
      

  8.   

    package com;class myclass {
    public static void main(String[] args) {
    System.out.println("Hello "); // 打印 "Hello "
    }
    }class myclass_ex {
    public static void main(String[] args) {
    System.out.println("Hello   Java ");// 打印 "Hello Java "
    }}
      

  9.   

    综上,main不一定要写在public class 下,但必须要有一个main入口,上面的只会执行一个
      

  10.   

    呵呵 晕了都
     main是一定要写在有public修饰的class类下的,像上面的两个main一般也没意义。
      

  11.   

    public class Person{
    public static void main(String args){}
    }
      

  12.   

    不知道lz的buildPath里 jdk引入的对吗
      

  13.   

    这位大哥,
    “毛主席教导我们说:没有实践就没有发言权”($#$#@$@#%@#$)
    凡事请试一下再作结论……
    package com.java.test;class Test4{
    public static void main(String[] args) {
    System.out.println("Hello test4");
    }
    }class Test3{
    public static void main(String[] args) {
    System.out.println("Hello test3!");
    }
    }以上程序放在Test2.java中,在IDE里(我这里的是MyEclipse 8.5,其它版本没试过),如果不存在与文件名同名的类,则右键菜单里不会出现Run as->Java Application选项。但是直接用该选项的热键Shift+Alt+X+J还是可以执行的(这里会弹出对话框询问运行Test3还是Test4)如果用JDK行命令,同样可以运行:
    java com.java.test.Test3
    Hello test3!java com.java.test.Test4
    Hello test4
      

  14.   

    这两天在补基础,事实上还是有点用处的,两个main函数import java.io.*;
    import java.util.*;public class WriteToProcess {
    public static void main(String[] args) {

    PrintStream ps = null;

    try {
    Process p = Runtime.getRuntime().exec("java ReadStandard");
    ps = new PrintStream(p.getOutputStream());
    ps.println("普通字符串");
    ps.println(new WriteToProcess());
    } catch(IOException e) {
    e.printStackTrace();
    } finally {

    if(ps != null) {
    ps.close();
    }

    }
    }
    }class ReadStandard {
    public static void main(String[] args) throws Exception {
    Scanner sc = new Scanner(System.in);

    PrintStream ps = new PrintStream(new FileOutputStream("out.txt"));
    sc.useDelimiter("\n");

    while(sc.hasNext()) {
    ps.println("键盘输入的内容是:" + sc.next());
    }

    ps.close();
    }
    }
      

  15.   

    直接告诉楼主,main函数不是必须放在跟类名相同的文件里,只需在执行时调用包含main函数的的类名即可
      

  16.   

    JVM会给类(类名同文件名)的main方法分配一个主线程执行代码,文件中可以有多个main方法