为什么即使我在 Java 程序中使用继承定义了 main 方法,也会收到错误“在类中找不到 Main 方法”?[复制]

Why am I getting the error 'Main method not found in class' even though I defined the main method in my Java program with inheritance? [duplicate]

提问人:Goutham 提问时间:5/31/2023 更新时间:6/1/2023 访问量:216

问:

package code.now;


class Test {
    public void fun() {
        System.out.println("Coding Ninjas");
    }
}

class Derived extends Test {
    
    public void fun() {
        System.out.println("Coding Ninjas");
    }
    public static void main(String[] args) {
        Derived obj = new Derived();
        obj.fun();
    }
}

我正在尝试执行此代码并遇到以下错误

“错误:在类code.ninja.Derived中找不到main方法,请将main方法定义为: public static void main(String[] 参数) 或者 JavaFX 应用程序类必须扩展 javafx.application.Application”

但我已经定义了 main 方法,并尝试检查任何语法和拼写错误,但代码仍然返回错误。

Java 继承 方法 program-entry-point

评论

2赞 Elliott Frisch 5/31/2023
看起来您已将两个类放在一个文件中。别这样。 进去又进去.此外,您当前从 in 重载单个函数(并且只是在这样做时复制了代码)。这既令人困惑又毫无意义。此外,您声明的软件包是,但您的错误消息来自 。DerivedDerived.javaTestTest.javaTestDerivedcode.nowcode.ninja
0赞 QBrute 5/31/2023
此外,我认为包含的类应该是mainpublic
0赞 rzwitserloot 5/31/2023
@QBrute不需要。
0赞 S14321K 6/1/2023
使用 eclipse 还是 intelij?
0赞 S14321K 6/1/2023
这回答了你的问题吗?错误:所选内容不包含主类型

答:

-1赞 S14321K 6/1/2023 #1

我以前也遇到过同样的情况。你的代码很好。没有问题。IDE 配置问题。

对于 Eclipse https://stackoverflow.com/a/75637946/11962586

更新 - 试试这种方式

enter image description here enter image description here enter image description here

评论

0赞 Dave Newton 6/1/2023
如果是骗子,请将其标记为骗子;如果不是,仅链接的答案就不是很好。
0赞 S14321K 6/1/2023
@Dave牛顿,我看不到重复选项。
0赞 Dave Newton 6/1/2023
我没有投反对票,但是:1)我们不知道这是否是正确的答案,因为我们不知道OP是如何运行代码的,2)重复是当我们投票关闭问题时列出的第一个选项,以及3)仅链接的答案不是SO的工作方式(如果答案是SO链接,则根据定义它是欺骗)。
0赞 S14321K 6/1/2023
我尝试运行此代码。效果很好。问题出在IDE上。你能告诉我如何将其标记为重复吗?
0赞 Dave Newton 6/1/2023
你错过了我要说的:我们不知道 OP 是否正在使用 IDE(或者如果是的话,是哪一个)。问题下方是链接:.单击“关闭”以关闭问题(实际上是投票关闭)。通过搜索或粘贴链接,从提供的列表中查找重复的问题。单击“投票关闭”按钮。Share Edit Follow Close Flag
1赞 Goutham 6/1/2023 #2

感谢您的帮助。

我想我找到了问题所在。同一包中有两个文件

软件包code.ninja;

> Main.java
> Deriveded.java
  • Main.java(这有一个类名 Derived ),所以当我尝试使用 Derived 创建一个新的 java 类时.java它抛出了错误,但是在我将类更改为 Derived.java 后,错误消失了。
  • 派生的.java(以前是派生的.java)

主 .java 程序在同一包中

派生的 .java