Несколько классов в Dr. Java
Компилятор JDK говорит, что он компилируется, но когда он запускается, я получаю эту ошибку:
Статическая ошибка: у этого класса нет статического основного метода void, принимающего String[].
Я привык помещать мой класс методов в один файл и помещать основной класс в отдельный файл.
Как мне решить эту проблему?
import java.util.Scanner;
public class Test{
private final int classSize = 35;
private int numEnrolled, numNeeded;
public void Input(){
Scanner in = new Scanner(System.in);
System.out.println("Enter the amount enrolled in your class");
numEnrolled = in.nextInt();
System.out.println("Your input is " + numEnrolled);
// Other parts of code that needs to be coded
}
}
class testRunner{
static void main(String args[]){
Test newTest = new Test();
newTest.Input();
}}
2 ответа
Решение
- В одном файле вы можете иметь только один открытый класс и несколько закрытых классов
- Ваше имя файла должно совпадать с единственным открытым классом
- Чтобы сделать ваш класс работоспособным, он должен содержать открытый метод static void main(String args[]), предпочтительно в открытом классе
Ваш TestRunner.java должен выглядеть следующим образом
class Test{
private final int classSize = 35;
private int numEnrolled, numNeeded;
public void Input(){
Scanner in = new Scanner(System.in);
System.out.println("Enter the amount enrolled in your class");
numEnrolled = in.nextInt();
System.out.println("Your input is " + numEnrolled);
// Other parts of code that needs to be coded
}
}
public class TestRunner{
public static void main(String args[]){
Test newTest = new Test();
newTest.Input();
}}
Изменить: Если вы хотите оставить имя файла Test.java, это тоже работает:
public class Test {
private final int classSize = 35;
private int numEnrolled, numNeeded;
public void Input() {
Scanner in = new Scanner(System.in);
System.out.println("Enter the amount enrolled in your class");
numEnrolled = in.nextInt();
System.out.println("Your input is " + numEnrolled);
// Other parts of code that needs to be coded
}
}
class TestRunner {
public static void main(String args[]) {
Test newTest = new Test();
newTest.Input();
}
}
Изменить:
class testRunner{
static void main(String args[]){
Test newTest = new Test();
newTest.Input();
}}
чтобы:
public class testRunner {
public static void main(String args[]) {
Test newTest = new Test();
newTest.Input();
}}
main()
всегда должен быть объявлен публичным