java 在类中找不到main(String[])方法:TapeDeck,main方法位于运行该程序的另一个类中

mpbci0fu  于 2023-02-11  发布在  Java
关注(0)|答案(8)|浏览(143)

我有两个类,当我把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();
        }
    }
}

此格式错误
对比分析
以下工程罚款:

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

nkhmeac61#

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

javac fileName.java

运行java .class文件,只需指定fileName而不指定.java扩展名

java fileName

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

pwuypxnk

pwuypxnk2#

首先,你必须使用javac编译文件。然后,你必须运行文件。
写入main的类名。

javac filename.java
java classname
balp4ylt

balp4ylt3#

您可以通过两种方式运行java程序。
1.直接运行java程序

java example_program.java

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

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

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

javac example_program.java

它将生成example_program.class。然后,使用以下命令执行类文件:

java example_program

在这里,写类的顺序并不影响。你可以按任何顺序写类。它会工作得很好。

yk9xbfzb

yk9xbfzb4#

我把它分成了两个文件,并在类/方法中添加了public和boolean,现在代码运行了。

pxiryf3j

pxiryf3j5#

在一些JDK中,JVM首先关注入口点函数,因为它需要先写,然后再写其余的代码。因为主函数是我们的入口点函数,所以它必须先写。

yiytaume

yiytaume6#

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[]).
gk7wooem

gk7wooem7#

我知道你的问题了。
首先,检查您在环境变量中设置的类路径
请按照以下步骤操作:

****第1步:右键单击此电脑--〉高级系统设置--〉环境变量
****第2步:*编辑变量classpath
并添加新路径或编辑已设置的旧路径。路径应为:
* C:\程序文件\Java主目录\jdk ..\lib;.;**备注:.""必须在分号(;).
****步骤3:***关闭CMD,然后再次打开。
****步骤4:***现在使用javac命令编译:javac FileName.java
****步骤5:***使用java命令运行代码:java ClassName

就这样...

wwwo4jvm

wwwo4jvm8#

试着在代码中先放“public static void main”类,然后再放其他方法,肯定会起作用的。

相关问题