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

Posted

技术标签:

【中文标题】在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中【英文标题】:Can't find main(String[]) method in class: TapeDeck. The main method is in the other class which runs the program 【发布时间】:2019-09-11 16:13:54 【问题描述】:

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

【问题讨论】:

你的java类(文件)名是什么? 解决这个问题的简单方法,也是最好的方法是每个文件有一个类。 @Abdul Hussain 请告诉文件名 它运行良好,它给出了错误:什么是“它”。你如何执行你的应用程序? 这不是执行课程的最佳方式。首先你用 javac 编译你的代码。然后使用 java 并传递包含 main 方法的类的完全限定名称。 【参考方案1】:

在某些 JDK 中,JVM 首先处理入口点函数,因此需要先编写它,然后再编写其余代码。由于 main 函数是我们的入口函数,所以必须先编写。

【讨论】:

【参考方案2】:

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

    直接运行java程序

      java example_program.java
    

    在这种类型中,编译和执行发生在运行时。那是 字节码立即生成并执行(作为解释器工作) 所以,你必须先使用超类(包含主方法),然后再使用其他 复合类。

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

    在第二种类型中,首先,你应该编译,

     javac example_program.java 
    

它将生成 example_program.class 。然后,使用,执行类文件,

     java example_program

在这里,编写类的顺序不受影响。您可以按任何顺序编写类。它会正常工作的。

【讨论】:

【参考方案3】:

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

编写 main 的类名。

javac filename.java
java classname

【讨论】:

【参考方案4】:

使用命令编译代码后:

javac fileName.java

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

java fileName

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中的主要内容,如果未能解决你的问题,请参考以下文章

(转)错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx

错误: 在类中找不到 main 方法, 请将 main 方法定义为:    public static void main(String[] args) 否则 JavaFX 应用程

错误: 在类中找不到 main 方法, 请将 main 方法定义为:    public static void main(String[] args) 否则 JavaFX 应用程

java运行中找不到main方法

java运行中找不到main方法

错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须