JDK 编译器说它可以编译,但是当它运行时我收到此错误:
Static Error: This class does not have a static void main method accepting 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();
}}
最佳答案
- 在一个文件中只能有一个公共(public)类,并且可以有多个 非公开类(class)
- 您的文件名必须与唯一公开的文件名匹配 类
- 为了使你的类可以运行,它应该包含一个公共(public)静态 void main(String args[]) 方法,最好在公共(public)类中
您的 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();
}
}
关于java - Dr. Java 中的多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752676/