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

时间:2019-04-22 13:06:06

标签: java methods main

我有两节课。当我将类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();
        }
    }
}

此格式错误

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");
    }
}

4 个答案:

答案 0 :(得分:1)

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

javac fileName.java

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

java fileName

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

答案 1 :(得分:0)

我将其分为两个文件,并将public添加到类/方法以及布尔值中。现在,代码开始运行。

答案 2 :(得分:0)

首先,您必须使用javac来编译文件。 然后,您必须运行文件。

写main的类名。

javac filename.java
java classname

答案 3 :(得分:0)

您可以通过两种方式运行Java程序。

  1. 通过java example_program.java直接运行Java程序 在这种类型中,编译和执行在运行时发生。那是 字节码立即生成并执行(用作解释器) 因此,您必须首先使用超类(包含main方法),然后再使用 复合类。

注意: 将不会生成.class文件。这意味着它将在内部生成字节码并执行。程序员无法查看课程文件。

  1. 在第二种类型中,首先,您应该编译javac example_program.java。它将生成 example_program.class 。然后,使用java example_program执行类文件。在这里,编写类的顺序不受影响。您可以按任何顺序编写类。会很好。