Мне нужно запустить код метода для 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;
}
}
Он полностью применим для класса, который не имеет 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
чтобы не иметь параметров, хотя вы все равно не используете их...
Если ваш класс должен использоваться в качестве основной программы, он должен реализовать
public static void main(String[] args))
Метод, из которого вы можете назвать свой метод GCD.
Да, как правильно говорит Eclipse, у вас нет main
метода в вашем файле GCD.java. В порядке выполнения этого класса самостоятельно, у вас должен быть основной метод. В противном случае вы можете только создать объект этого класса и вызвать из другого класса.