在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中

Abd*_*ain 3 java methods program-entry-point

我有两节课。当我将类 TapeDeckTestDrive 放在文本编辑器上时,它运行良好。当我把 TestDrive 类放在第一位时,它给出了找不到主类的错误。为什么是这样?

class TapeDeck {
    boolean canRecord = false;
    void playTape(){
        System.out.println("tape playing");
    }
    void recordTape(){
        System.out.println("tape recording");
    }
}

class TapeDeckcTestDrive{
    public static void main(String[] args){
        TapeDeck t = new TapeDeck();
        t.canRecord = true;
        t.playTape();

        if (t.canRecord == true) {
            t.recordTape();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此格式错误

VS

以下工作正常:

class TapeDeckcTestDrive{
    public static void main(String[] args){
        TapeDeck t = new TapeDeck();
        t.canRecord = true;
        t.playTape();

        if (t.canRecord == true) {
            t.recordTape();
        }
    }
}

class TapeDeck {
    boolean canRecord = false;
    void playTape(){
        System.out.println("tape playing");
    }
    void recordTape(){
        System.out.println("tape recording");
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

使用以下命令编译代码后:

javac fileName.java
Run Code Online (Sandbox Code Playgroud)

.class通过仅指定fileName不带.java扩展名来运行 java文件

java fileName
Run Code Online (Sandbox Code Playgroud)

如果你使用fileName.java它不会运行特定的.class文件;它将尝试解释.java文件。如果要解释.java文件,则父类必须包含该main(String[])方法。