Класс Java не имеет основного метода

1

Мне нужно запустить код метода для GCD. Мой java файл называется "GCD.java", а открытый класс называется "GCD". Тем не менее, я продолжаю получать сообщение "Class GCD не имеет основного метода", хотя у меня нет красных кругов объяснений в любой из моих строк. Я могу запустить код без кода метода (т.е. public static void main (String [] args)), но мне нужно запустить код с помощью метода. Благодарю.

==========================

import java.util.Scanner;

    public class GCD
    {

        public static int getDivisor(int x, int y)
        {


        System.out.println("Greatest Common Divisor Finder");
        System.out.println();

        String choice = "y";
        Scanner sc = new Scanner(System.in);
        while (choice.equalsIgnoreCase("y"))
        {

            System.out.print("Enter first number: ");
            x = sc.nextInt();
            System.out.print("Enter second number: ");
            y = sc.nextInt();

            int secondNumber = 0;
            int firstNumber = 0;
            int Greatestcommondivisionfinder = 0;

            // x = first,  y = second
            if (x > y)
                {
                    do
        {
                        x -= y;
                        }
             while (x > y);
        do
        {
                        y -= x;
                        }
    while (y > 0);
            System.out.println("Greatest Common Divisor: " + x);
        }

            else if (y > x)
        {
        do
                        {
            y -= x;
                        }
    while(y > x);
        do
                        {
            x -= y;
                        }
    while (x > 0);
            System.out.println("Greatest Common Divisor: " + y);
        }
             else
                    {
                    int subtract;
                    do
                    {
                    subtract = (int)y - (int)x;
                    }

            while(y > x);
            int gcd;
            gcd = (int)x - subtract;
                    }


            System.out.println();
            System.out.print("Continue? (y/n): ");
            choice = sc.next();
            System.out.println();
                }
            return 0;
          }
    }
Теги:
class-method

3 ответа

6

Он полностью применим для класса, который не имеет main метода, или для него имеет основной метод, который не объявляется как public static void main(String[] args).

Однако для того, чтобы рассматривать класс как точку входа для приложения Java, ему нужен этот метод с этой сигнатурой (хотя имя параметра может меняться).

Таким образом, у вас есть класс, который сам по себе хорош, но вы не можете запускать сам по себе. Вы можете создать отдельный класс, например

public class GcdLauncher {
    public static void main(String[] args) {
        GCD.getDivisor(0, 0); // Parameters are ignored anyway...
    }
}

Затем после компиляции вы можете запустить:

java GcdLauncher

Или вы можете добавить public static void main(String[] args) метод public static void main(String[] args) к вашему классу GCD.

Я настоятельно рекомендую вам изменить метод getDivisor чтобы не иметь параметров, хотя вы все равно не используете их...

  • 0
    +1 для "Параметры игнорируются в любом случае ..."
1

Если ваш класс должен использоваться в качестве основной программы, он должен реализовать

public static void main(String[] args))

Метод, из которого вы можете назвать свой метод GCD.

1

Да, как правильно говорит Eclipse, у вас нет main метода в вашем файле GCD.java. В порядке выполнения этого класса самостоятельно, у вас должен быть основной метод. В противном случае вы можете только создать объект этого класса и вызвать из другого класса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню