为什么我的程序立即崩溃,显示“java.lang.NoSuchMethodError:main”?

时间:2011-08-12 21:46:20

标签: java

  

练习1:编写一个应用程序,以从键盘读取的两个整数打印数百位数。例如,如果数据值分别为1456和254,则程序应打印4和2.您可以自己选择整数。您的输出应包括原始数字,后跟数百位的数字。适当标记输出。

那是我的问题;这是我尝试使用Eclipse编写的代码。

public class Hundreds 
{
    int first1 = 1523;
    first2 = first1 % 1000;
    first3 = first2 / 100;
    System.out.println("Original number equals: " + first1);
    System.out.println("Hundreds  digit equals: " + first3);

    int second1 = 589;
    second2 = 589 / 100;
    System.out.println("Original number equals: " + second1);
    System.out.println("Hundreds  digit equals: " + second2);
}

我确信有更好的方法来命名数字;这就是我提出的......但Eclipse显示错误读取:

java.lang.NoSuchMethodError: main
Exception in thread "main" 

当我尝试运行它时。关于我在这里做错了什么的想法?

5 个答案:

答案 0 :(得分:7)

您需要main()方法。您看到的错误消息是因为JVM想要运行main(),但它无法找到它。

规范的Java示例(取自http://en.wikipedia.org/wiki/Java_(programming_language)#Hello_world)是:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

答案 1 :(得分:3)

您需要将逻辑放在主方法中:

public class Hundreds {
    public static void main(String[] args) {
      int first1 = 1523;
      first2 = first1 % 1000;
      first3 = first2 / 100;
      System.out.println("Original number equals: " + first1);
      System.out.println("Hundreds  digit equals: " + first3);

      int second1 = 589;
      second2 = 589 / 100;
      System.out.println("Original number equals: " + second1);
      System.out.println("Hundreds  digit equals: " + second2);
      }
    }

答案 2 :(得分:2)

您需要拥有Java编程语言中的main方法,每个应用程序必须包含一个主要方法(入口点),其签名为:

public static void main(String[] args)

所以你的代码应该是这样的:

    public class Hundreds 
    {
        public static void main(String[] args) {
            int first1 = 1523;
            int first2,first3,second2;
            first2 = first1 % 1000;
            first3 = first2 / 100;
            System.out.println("Original number equals: " + first1);
            System.out.println("Hundreds  digit equals: " + first3);

            int second1 = 289;
            second2 = 589 / 100;
            System.out.println("Original number equals: " + second1);
            System.out.println("Hundreds  digit equals: " + second2);
       }

   }

你可以看到The Method main;它是对其用法的简短解释。

答案 3 :(得分:0)

你需要一个主要的方法。

public class Hundreds {
    public static void main(String[] args) {
        // put code here
    }
}

答案 4 :(得分:0)

...多德 你的主要方法在哪里? public static void main .....

你的代码的其余部分应该进入它......

顺便说一下,这是你打到额头并说“呃...”的部分; - )

祝你好运