繁体   English   中英

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

[英]Can't find main(String[]) method in class: TapeDeck. The main method is in the other class which runs the program

我有两个班级。 当我将 class TapeDeckTestDrive 首先放在文本编辑器上时,它运行良好。 当我把TestDrive class放在第一位时,报错找不到主class,这是为什么呢?

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

使用命令编译代码后:

javac fileName.java

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

java fileName

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

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

编写 main 的类名。

javac filename.java
java classname

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

  1. 直接运行java程序

     java example_program.java

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

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

  1. 在第二种类型中,首先,您应该编译,

     javac example_program.java

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

     java example_program

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

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

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

Steps 1. 
--You have to compile the File by using javac. Then, You have to Run the file.

--Classname where main is written.

-- javac filename.java
-- java classname


It causing error due to:-
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();
        }
    }
}

--Your tapedeck class doesn't main (String[]).

我有你的问题。

首先,检查您在环境变量中设置的类路径

请按照以下步骤操作:

  • ***第 1 步:*** 右键单击此电脑 --> 高级系统设置 --> 环境变量

  • ***第 2 步:*** 编辑变量类路径并添加新路径或编辑您设置的旧路径。 路径应该是: C:\Program Files\Java_Home\jdk..\lib;.; 注意:“。” 必须在分号 (;) 之后。

  • ***第 3 步:*** 关闭 CMD 并再次打开。

  • ***第 4 步:*** 现在使用 javac 命令编译: javac FileName.java

  • ***第 5 步:*** 使用 java 命令运行您的代码: java ClassName

还有你 go...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM