Компилятор JDK говорит, что он компилируется, но когда он запускается, я получаю эту ошибку:
Static Error: This class does not have a static void main method accepting String[].
Я привык помещать свой класс методов в один файл и помещать основной класс в файл sperate.
Как мне решить эту проблему?
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();
}}
С точки зрения компиляции это действительно так. У вас может быть статический метод, который ничего не возвращает, называется main, который принимает String[] в качестве параметра, но это не делает его вpublic 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();
}
}
Итак, мне все еще нужен второй файл для класса testRunner, чтобы использовать его в Test.java? Я думал, что Java может обрабатывать несколько классов в одном файле.
Я добавил некоторое объяснение, java может обрабатывать несколько классов, но только один может быть общедоступным
Я пробовал использовать вашу вторую строку кода с Test.Java, но она все еще выдает статическую ошибку: у этого класса нет статического метода void main, принимающего String [].
как ты пытаешься казнить?
в настоящее время он просто пытается скомпилировать его (пока без ошибок) и запустить, но когда я нажимаю кнопку запуска, это первое, что появляется. нет запроса на ввод. я не знаю, проблема ли это Dr. Java или нет
я не знаю, что не так, должно работать. Но тогда придерживайтесь первого кода. Второй в любом случае странный, только что опубликовал, потому что мне он показался интересным
Изменять:
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() всегда должен быть объявлен общественный
Возможно, вы захотите добавить
public