patrick ritsma
patrick ritsma

Reputation: 17

Why does my program immediately crash, displaying "java.lang.NoSuchMethodError: main"?

Exercise 1: Write an application that prints the hundreds digit in two integers read from the keyboard. For example, if the data values are 1456 and 254 respectively, your program should print 4 and 2. You may choose the integers yourself. Your output should include the original number followed by the digit in the hundreds position. Label your output appropriately.

That was my question; here's the code I attempted to write using 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);
}

I'm sure there would be a better method to naming the numbers; that's just what I came up with… but Eclipse shows an error reading:

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

when I attempt to run it. Any ideas on what I've done incorrectly here?

Upvotes: 0

Views: 199

Answers (5)

Josh
Josh

Reputation: 376

You need to put your logic in a main method:

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);
      }
    }

Upvotes: 3

bibo
bibo

Reputation: 21

You need to have a main method as in the Java programming language, every application must contain a main method (entry point) whose signature is:

public static void main(String[] args)

So your code should look like:

    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);
       }

   }

You could see The Method main; it's a short explanation of its usages.

Upvotes: 2

sgibly
sgibly

Reputation: 3838

Dude... Where is your main method? public static void main.....

The rest of your code should go inside it...

BTW, this is the part where you hit your forehead and say "duh..." ;-)

Good luck

Upvotes: 0

Atreys
Atreys

Reputation: 3761

You need a main method.

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

Upvotes: 0

Oliver Charlesworth
Oliver Charlesworth

Reputation: 272677

You need a main() method. The error message you see is because the JVM wants to run main(), but it cannot find it.

A canonical Java example (taken from http://en.wikipedia.org/wiki/Java_(programming_language)#Hello_world) is:

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

Upvotes: 7

Related Questions